如何在Oracle中使用参数执行存储过程

时间:2015-01-21 10:15:04

标签: oracle plsql oracle-sqldeveloper

我的程序是这样的:

CREATE OR replace PROCEDURE rs_pes (c1                IN OUT SYS_REFCURSOR,
                                    pi_prod_type_code IN VARCHAR2,
                                    pi_entry_date     IN VARCHAR2,
                                    pi_dealer         IN VARCHAR2,
                                    pi_adv            IN VARCHAR2 )

而且,我试图像这样执行它:

execute  RS_PES('Investments Series 2',
        '31-12-2012',
        'All Dealer',
        'All Adv')

我的语法错误不正确。

ORA-00900: Invalid SQL statement
00900.00000 - Invalid SQL statement

我做错了什么,如何执行此操作?我是甲骨文的新手。

1 个答案:

答案 0 :(得分:0)

Execute是一个SQL * Plus命令,它基本上围绕BEGIN / END语句包装程序调用。除了SQL * Plus

之外,其他任何地方都无法工作

如果要在Oracle SQL Developer中执行该过程,请将其包装在BEGIN / END块

BEGIN
 RS_PES('Investments Series 2',
        '31-12-2012',
        'All Dealer',
        'All Adv');

END;

此外,您的程序有5个参数,而您只需设置4.您需要修复此问题。