在 pl/sql 中使用匿名块调用过程?
Call procedure using anonymous block in pl/sql?
我是 PL/SQL 的新手,但一直在阅读它并使用了一些模板,包括我从这里找到的一些模板。
我想做的是编写一个匿名块来调用一些先前在 sql 开发人员项目中编写的过程。我试过了,但 运行 不正确。它 returns 一个 "Error starting at line : 2 in command " 的错误然后报告一个 "closed connection."
这是我的尝试:
DECLARE
P_USER_NAME VARCHAR;
P_DEBUG_FLAG VARCHAR;
P_DEBUG_FIELD VARCHAR;
P_DEBUG_VALUE VARCHAR;
BEGIN
schema.package.procedure(
OutParam1, OutParam2, OutParam3, OutParam4);
dbms_output.put_line('OutParam1: ' || P_USER_NAME);
dbms_output.put_line('OutParam2: ' || P_DEBUG_FLAG);
dbms_output.put_line('OutParam3: ' || P_DEBUG_FIELD);
dbms_output.put_line('OutParam4: ' || P_DEBUG_VALUE);
END;
/
这些是我要调用的过程:
PROCEDURE CLEAR_DEBUG (P_USER_NAME IN VARCHAR2);
PROCEDURE WRITE_DEBUG (P_USER_NAME IN VARCHAR2,
P_DEBUG_FLAG IN VARCHAR2,
P_DEBUG_FIELD IN VARCHAR2,
P_DEBUG_VALUE IN VARCHAR2);
PROCEDURE READ_DEBUG (P_USER_NAME IN VARCHAR2,
P_REF_CURSOR OUT SYS_REFCURSOR);
END P_DEBUG;
您的代码中还有更多错误:
- 正确声明变量 - VARCHAR 需要长度限制
- OutParam1、OutParam2、OutParam3、OutParam4 未声明 - 使用声明的变量作为参数,注意作为参数传递的变量必须具有相同的数据类型
- 我想你想打电话给
P_DEBUG.WRITE_DEBUG(P_USER_NAME, P_DEBUG_FLAG, P_DEBUG_FIELD, P_DEBUG_VALUE);
我是 PL/SQL 的新手,但一直在阅读它并使用了一些模板,包括我从这里找到的一些模板。
我想做的是编写一个匿名块来调用一些先前在 sql 开发人员项目中编写的过程。我试过了,但 运行 不正确。它 returns 一个 "Error starting at line : 2 in command " 的错误然后报告一个 "closed connection."
这是我的尝试:
DECLARE
P_USER_NAME VARCHAR;
P_DEBUG_FLAG VARCHAR;
P_DEBUG_FIELD VARCHAR;
P_DEBUG_VALUE VARCHAR;
BEGIN
schema.package.procedure(
OutParam1, OutParam2, OutParam3, OutParam4);
dbms_output.put_line('OutParam1: ' || P_USER_NAME);
dbms_output.put_line('OutParam2: ' || P_DEBUG_FLAG);
dbms_output.put_line('OutParam3: ' || P_DEBUG_FIELD);
dbms_output.put_line('OutParam4: ' || P_DEBUG_VALUE);
END;
/
这些是我要调用的过程:
PROCEDURE CLEAR_DEBUG (P_USER_NAME IN VARCHAR2);
PROCEDURE WRITE_DEBUG (P_USER_NAME IN VARCHAR2,
P_DEBUG_FLAG IN VARCHAR2,
P_DEBUG_FIELD IN VARCHAR2,
P_DEBUG_VALUE IN VARCHAR2);
PROCEDURE READ_DEBUG (P_USER_NAME IN VARCHAR2,
P_REF_CURSOR OUT SYS_REFCURSOR);
END P_DEBUG;
您的代码中还有更多错误:
- 正确声明变量 - VARCHAR 需要长度限制
- OutParam1、OutParam2、OutParam3、OutParam4 未声明 - 使用声明的变量作为参数,注意作为参数传递的变量必须具有相同的数据类型
- 我想你想打电话给
P_DEBUG.WRITE_DEBUG(P_USER_NAME, P_DEBUG_FLAG, P_DEBUG_FIELD, P_DEBUG_VALUE);