以下存储过程用于获取参数my_seconds,创建日期变量my_date,即当前日期加上(或减去)数字my_seconds,并打印日期.
CREATE OR REPLACE PROCEDURE test (my_seconds NUMBER)
IS
my_date DATE;
BEGIN
execute immediate 'select sysdate + interval '':1'' second from dual' into my_date USING &my_seconds;
DBMS_OUTPUT.PUT_LINE('DATE:' || my_date);
END
Run Code Online (Sandbox Code Playgroud)
但是,当编译过程(使用Oracle SQL开发人员)时,它会提示输入my_seconds的值,并且无法正确创建过程.
该怎么做:
execute immediate 'select sysdate + interval '':1'' second from dual' into my_date USING &my_seconds ;
Run Code Online (Sandbox Code Playgroud)
被重写?
谢谢
您可以像这样编写程序,而不立即执行:
CREATE OR REPLACE PROCEDURE test (my_seconds NUMBER)
IS
my_date DATE;
BEGIN
select sysdate + my_seconds * interval '1' second into my_date from dual;
DBMS_OUTPUT.PUT_LINE('DATE:' || my_date);
END
Run Code Online (Sandbox Code Playgroud)