1

クエリがあり、それをストアド プロシージャに入れる必要がありますが、ストアド プロシージャを呼び出しても何も返されません。

これは私のクエリです:

select * from mdc_cat_parametros where param_llave='SMTP_SERVER';

クエリを実行すると、1 行が返されますが、ストアド プロシージャは返されません。

これは私のストアドプロシージャです:

CREATE OR REPLACE PROCEDURE MDC_UTIL_PROCEDURE
AS
    RT MDC_CAT_PARAMETROS%ROWTYPE;
BEGIN
    SELECT * INTO RT FROM MDC_CAT_PARAMETROS WHERE PARAM_LLAVE='SMTP_SERVER';
END MDC_UTIL_PROCEDURE; 

ストアド プロシージャを呼び出します。

EXECUTE MDC_UTIL_PROCEDURE;
4

2 に答える 2

2

ストアド プロシージャが読み込まれますがRT、その中から選択する必要があります。

CREATE OR REPLACE PROCEDURE MDC_UTIL_PROCEDURE (results OUT SYS_REFCURSOR)
AS
    RT MDC_CAT_PARAMETROS%ROWTYPE;
BEGIN
    SELECT * INTO RT FROM MDC_CAT_PARAMETROS WHERE PARAM_LLAVE='SMTP_SERVER';
    OPEN results FOR SELECT * FROM RT;
END MDC_UTIL_PROCEDURE; 

RTまたは、変数を取り除くために単純化することもできます:

CREATE OR REPLACE PROCEDURE MDC_UTIL_PROCEDURE (results OUT SYS_REFCURSOR)
AS
BEGIN
    OPEN results FOR 
    SELECT * FROM MDC_CAT_PARAMETROS WHERE PARAM_LLAVE='SMTP_SERVER';
END MDC_UTIL_PROCEDURE; 
于 2013-10-10T23:27:36.187 に答える