Stored procedures 已忽略存储过程SQL语句

Stored procedures 已忽略存储过程SQL语句,stored-procedures,peoplesoft,peoplesoft-app-engine,Stored Procedures,Peoplesoft,Peoplesoft App Engine,我正在编译这个存储过程,但没有遇到什么错误:试图在OracleSQLDeveloper中编译它 SQL语句被忽略 无效字符 代码: CREATE OR REPLACE PROCEDURE CGF_GEN_WIP( NUM IN VARCHAR2) AS BEGIN SELECT SEQ_NBR FROM PS_CGF_SEQ_TBL WHERE SEQ_NAME = 'CGF_WIP_ID'; UPDATE

我正在编译这个存储过程,但没有遇到什么错误:试图在OracleSQLDeveloper中编译它

SQL语句被忽略
无效字符

代码:

CREATE OR REPLACE PROCEDURE CGF_GEN_WIP( NUM IN VARCHAR2) AS
BEGIN
    SELECT 
       SEQ_NBR 
    FROM 
       PS_CGF_SEQ_TBL 
    WHERE 
       SEQ_NAME = 'CGF_WIP_ID'; 

    UPDATE PS_CGF_SEQ_TBL 
    SET DTTM_STAMP_SEC = %CURRENTDATETIMEIN, SEQ_NBR = SEQ_NBR + NUM
    WHERE SEQ_NAME = 'CGF_WIP_ID';
END;

请给我一些建议,我正在重新开始。谢谢大家!

元SQL中的%CURRENTDATETIMEIN仅在peoplecodes和PeopleSoft SQL中可用。您不能在存储过程中使用它。 我建议您编写一个应用程序引擎来编写代码,这是peoplesoft中开发流程的常用方法。
但是如果您必须继续使用SP,只需将其更改为SYSDATE。

在PeopleSoft中,如果底层数据库是ORACLE,则Meta SQL%CURRENTDATETIMEIN将转换为“CAST(SYSTIMESTAMP AS TIMESTAMP)”。您可以在PeopleSoft应用程序设计器工具中的新SQL对象中键入PeopleSoft SQL。输入完SQL后,右键单击并从弹出菜单中选择“ResolveMetaSQL”。您将在输出窗口的MetaSQL选项卡中看到Oracle SQL转换。在Oracle的索引中搜索“meta SQL,resolving”

要修复存储过程,请进行以下更改: 更改“更新PS_CGF_SEQ_TBL SET DTTM_STAMP_SEC=%CURRENTDATETIMEIN,SEQ_NBR=SEQ_NBR+NUM,其中SEQ_NAME='CGF_WIP_ID'


要“更新PS_CGF_SEQ_TBL SET DTTM_STAMP_SEC=CAST(SYSTIMESTAMP作为时间戳),SEQ_NBR=SEQ_NBR+NUM,其中SEQ_NAME='CGF_WIP_ID'”

删除;最后,SQL只是结构化查询语言——一种被许多数据库系统使用的语言,但不是一种数据库产品。。。很多东西都是特定于供应商的-因此我们确实需要知道您使用的是什么数据库系统(以及哪个版本)(请相应地更新标记)…
“CGF\u WIP\u ID”
是一个列名,而不是字符串文本SQL@Serpiton:该
用于终止SQL(“查询语言”)中的单个语句。这段代码看起来非常像Oracle的PL/SQL,您肯定需要分号,而且基本上在其他所有过程语言中都需要分号。SQL Server不需要它们,但您仍应使用它们: