1

我正在使用 SQL Dveloper IDE 在 Oracle 中编写函数。该函数工作得很好,当我添加这个语句时:

INSERT INTO bl_transaction   
VALUES(generated_id,'0','0','Y',NOW(),'0',NOW(),'0',CAST(dbms_random.value(100,100000) as integer), tuple.billing_id, tuple.created, sys_guid(), first_invgroup, 'Y', 'N', tuple.guid, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); 

编译器给了我一个无提示的错误:

ORA-06553: PLS-320: 此表达式类型的声明不完整或格式错误

我已经查看了所有可能的类型不匹配、参数数量等。

我该如何解决这个问题?

4

1 回答 1

5

NOW() 不是获取当前日期和时间的受支持的 Oracle 函数 -SYSDATE是。尝试:

INSERT INTO bl_transaction   
VALUES(generated_id,'0','0','Y',SYSDATE,'0',SYSDATE,'0',CAST(dbms_random.value(100,100000) as integer), tuple.billing_id, tuple.created, sys_guid(), first_invgroup, 'Y', 'N', tuple.guid, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); 

但你也有:

  • tuple.created
  • tuple.billing_id

...作为价值观,但不包括这些价值观的来源。

第三,由于您没有提供要插入的列的列表,我们无法知道您的查询是否或多或少地指定了您尝试插入的表中的列数......或洞察力每个位置的数据类型。

于 2011-03-02T06:03:16.060 回答