Logging 登录动态SQL
我有一个使用动态sql的存储过程。当从Java调用proc时,Logging 登录动态SQL,logging,plsql,dynamic-sql,Logging,Plsql,Dynamic Sql,我有一个使用动态sql的存储过程。当从Java调用proc时,SQLSTR1编译时,是否有任何方法记录发生的编译错误。或者记录相关的变量 SQLSTR1:= ' SELECT NVL(SUM(TOTAL_B),0) CURRENT_VAL,' || COL_NAME|| ' FROM view1 WHERE(R_DATE IS NULL OR R_DATE >:EOQ) AND (LOCATION IN (' || COMMA_FUNC(LOCATIO) || ')
SQLSTR1
编译时,是否有任何方法记录发生的编译错误。或者记录相关的变量
SQLSTR1:= ' SELECT NVL(SUM(TOTAL_B),0) CURRENT_VAL,' || COL_NAME|| '
FROM view1 WHERE(R_DATE IS NULL OR R_DATE >:EOQ)
AND (LOCATION IN (' || COMMA_FUNC(LOCATIO) || ') OR :LOCATIO = ''NULL'')
GROUP BY ' || COL_NAME;
OPEN CURRENT_CURSOR FOR SQLSTR1 USING EOQ, LOCATIO;
管理进程的人不在,我需要进行一些调试。请帮忙 至少可以通过查看v$sql\u bind\u capture来显示绑定变量的值:“v$sql\u bind\u capture显示sql游标使用的绑定变量的信息。视图中的每一行包含游标中定义的一个绑定变量的信息。”请参阅 简单的例子:
DECLARE
TYPE ct IS REF CURSOR;
c ct;
q VARCHAR2(255);
BEGIN
q := 'SELECT * FROM dual WHERE dummy = :EOQ OR dummy = :LOCATIO';
OPEN c FOR q USING 'X', 'Y';
CLOSE c;
END;
/
SELECT
sql_id
,name
,value_string
,TO_CHAR(last_captured, 'DD.MM.YYYY HH24:MI:SS')
FROM v$sql_bind_capture
WHERE NAME IN (':EOQ', ':LOCATIO');
--
a2vmmmcumuv5v :EOQ X 14.11.2013 22:09:05
a2vmmmcumuv5v :LOCATIO Y 14.11.2013 22:09:05
^^^^^
as expected
至少可以通过查看v$sql\u bind\u capture来显示绑定变量的值:“v$sql\u bind\u capture显示sql游标使用的绑定变量的信息。视图中的每一行包含游标中定义的一个绑定变量的信息。”请参阅 简单的例子:
DECLARE
TYPE ct IS REF CURSOR;
c ct;
q VARCHAR2(255);
BEGIN
q := 'SELECT * FROM dual WHERE dummy = :EOQ OR dummy = :LOCATIO';
OPEN c FOR q USING 'X', 'Y';
CLOSE c;
END;
/
SELECT
sql_id
,name
,value_string
,TO_CHAR(last_captured, 'DD.MM.YYYY HH24:MI:SS')
FROM v$sql_bind_capture
WHERE NAME IN (':EOQ', ':LOCATIO');
--
a2vmmmcumuv5v :EOQ X 14.11.2013 22:09:05
a2vmmmcumuv5v :LOCATIO Y 14.11.2013 22:09:05
^^^^^
as expected