我有一存储过程,如下:
CREATE OR REPLACE PROCEDURE PROC_EQU_EXPMONTH(CUR OUT PKG_GCGL.type_cur,
STRMONTH IN VARCHAR2 --Ô·ÝÐβÎ
AS
/*
¹¦ÄÜ£º¸ù¾Ý¸ø¶¨µÄÔ·ݲéѯÉ豸³ö¿âÇé¿ö
ÈÕÆÚ£º2004-01-04
×÷ÕߣºÀÑô
²ÎÊý£ºSTRMONTH,Ô·Ý×Ö·û´®£¬¸ñʽ£º'YYYY-MM'
*/
STR VARCHAR2(3000);
BEGIN
STR := '''' || STRMONTH || '%''';
STR := 'SELECT ROWNUM, ' || --ÐòºÅ
'(SELECT STR_PRJNO FROM GCGL_TREE WHERE I_NO = B.I_TREENO) AS STR_PRJN0, ' || --×ÓÏîºÅ
'(SELECT STR_NAME FROM GCGL_TREE WHERE I_NO = B.I_TREENO) AS STR_PRJNAME, ' || --¹¤³ÌÏîÄ¿Ãû³Æ
'B.STR_RULE, ' || --¹æ¸ñÐͺÅ
'B.STR_MEASURE, ' || --¼ÆÁ¿µ¥Î»
'A.I_AMOUNT,' || --ÊýÁ¿
'B.DT_EXPDATE,' || --³ö¿âÈÕÆÚ
'B.STR_GETUNIT,' || --ÁìÓõ¥Î»
'A.I_COST, ' || --½ð¶î
'A.STR_MEMO ' || --±¸×¢
'FROM EQU_EXPMONTH A, ' || --³ö¿âÔ±¨±í
'EQU_EXPORT B ' || --³ö¿âÐÅÏ¢±í
'WHERE A.I_EXPNO = B.I_NO ' || --³ö¿âµ¥ÐòºÅ
'AND TO_CHAR(DT_EXPDATE,''YYYY-MM'') LIKE ' || STR;
OPEN CUR FOR STR;
END PROC_EQU_EXPMONTH;
/
现在toad中测试以下,得到的结果就像在pl/sql dev里一样显示出来,该如何做呢。望大家提供操作步骤,不胜感激。
CREATE OR REPLACE PROCEDURE PROC_EQU_EXPMONTH(CUR OUT PKG_GCGL.type_cur,
STRMONTH IN VARCHAR2 --Ô·ÝÐβÎ
AS
/*
¹¦ÄÜ£º¸ù¾Ý¸ø¶¨µÄÔ·ݲéѯÉ豸³ö¿âÇé¿ö
ÈÕÆÚ£º2004-01-04
×÷ÕߣºÀÑô
²ÎÊý£ºSTRMONTH,Ô·Ý×Ö·û´®£¬¸ñʽ£º'YYYY-MM'
*/
STR VARCHAR2(3000);
BEGIN
STR := '''' || STRMONTH || '%''';
STR := 'SELECT ROWNUM, ' || --ÐòºÅ
'(SELECT STR_PRJNO FROM GCGL_TREE WHERE I_NO = B.I_TREENO) AS STR_PRJN0, ' || --×ÓÏîºÅ
'(SELECT STR_NAME FROM GCGL_TREE WHERE I_NO = B.I_TREENO) AS STR_PRJNAME, ' || --¹¤³ÌÏîÄ¿Ãû³Æ
'B.STR_RULE, ' || --¹æ¸ñÐͺÅ
'B.STR_MEASURE, ' || --¼ÆÁ¿µ¥Î»
'A.I_AMOUNT,' || --ÊýÁ¿
'B.DT_EXPDATE,' || --³ö¿âÈÕÆÚ
'B.STR_GETUNIT,' || --ÁìÓõ¥Î»
'A.I_COST, ' || --½ð¶î
'A.STR_MEMO ' || --±¸×¢
'FROM EQU_EXPMONTH A, ' || --³ö¿âÔ±¨±í
'EQU_EXPORT B ' || --³ö¿âÐÅÏ¢±í
'WHERE A.I_EXPNO = B.I_NO ' || --³ö¿âµ¥ÐòºÅ
'AND TO_CHAR(DT_EXPDATE,''YYYY-MM'') LIKE ' || STR;
OPEN CUR FOR STR;
END PROC_EQU_EXPMONTH;
/
现在toad中测试以下,得到的结果就像在pl/sql dev里一样显示出来,该如何做呢。望大家提供操作步骤,不胜感激。
你先输入上面这些,然后点击一次性运行脚本那个按钮,也就是编译一下,如果报错,下面会有提示的。
报错就进入对象察看器,点到那个存储过程,右边出现源代码,点击error,就出现了详细的错误信息,此时点回script(就是原程序啦),光标就会自动停在报错的地方
选中OUTPUT OUT args,运行后查看VIEW-》DBMS OUTPUT。
可以看到你输出的结果。
DBMS_OUTPUT.PUT_LINE(xxx);