PL/SQL Oracle 无提示错误

Posted

技术标签:

【中文标题】PL/SQL Oracle 无提示错误【英文标题】:PL/SQL Oracle hintless error 【发布时间】:2011-03-02 05:52:49 【问题描述】:

我正在使用 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:此表达式类型的声明不完整或格式错误

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

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

以上是关于PL/SQL Oracle 无提示错误的主要内容,如果未能解决你的问题,请参考以下文章

PL/SQL登陆就会提示TNS协议适配器错误,这啥问题。

Oracle Pl sql 登录时提示 “监听程序当前无法识别连接描述符中请求的服务” 。

SQL 和 PL/SQL 的区别

ORACLE PL/SQL编程总结

如何一键提示两个命令? pl/sql oracle 10g 表单生成器

ORACLE:错误错误(6,3):PL/SQL:SQL 语句被忽略和错误(8,3):PL/SQL:ORA-00933:SQL 命令未在过程中正确结束