sysdateをV_TODAY変数に渡したいのですが、他のブロックやスプーリングに使用できます。私はV_TODAYを宣言しなければならないというエラーを出しているコードの下に書いています。値NAMEとIDを持つ変数の場合、値を渡すことができます。oracleでsys_dateで変数を渡す方法
宣言ブロック内SET ECHO OFF;
SET FEEDBACK OFF;
SET HEAD OFF;
SET LIN 256;
SET TRIMSPOOL ON;
SET WRAP OFF;
SET PAGES 100;
SET TERM OFF;
SET SERVEROUTPUT ON;
SPOOL F:\LATEST\Loop_TRE.sql;
PROMPT VAR NAME VARCHAR2(100);
PROMPT VAR ID VARCHAR2(100);
PROMPT VAR V_TODAY date;
BEGIN
FOR TARGET_POINTER IN (SELECT NAME, ID from D_URL)
LOOP
DBMS_OUTPUT.PUT_LINE('DEFINE TARGET = '''||TARGET_POINTER.NAME||''';');
DBMS_OUTPUT.PUT_LINE('EXEC :NAME := '''||TARGET_POINTER.NAME||'''; ');
DBMS_OUTPUT.PUT_LINE('DEFINE TARGET1 = '''||TARGET_POINTER.ID||''';');
DBMS_OUTPUT.PUT_LINE('EXEC :ID := '''||TARGET_POINTER.ID||'''; ');
DBMS_OUTPUT.PUT_LINE('@@TGT_DOP.sql;');
END LOOP;
Select SYS_DATE INTO V_TODAY from DUAL;
DBMS_OUTPUT.PUT_LINE('DEFINE V_TODAY = '''||V_TODAY||''';');
DBMS_OUTPUT.PUT_LINE('EXEC :V_TODAY := '''||V_TODAY||'''; ');
DBMS_OUTPUT.PUT_LINE('@@Loop_TST.sql;');
END;
/
SPOOL OFF;
@@Loop_TRE.sql;
あなたの無名ブロックではなく、プロンプト 'V_TODAY'を宣言しようとしましたか? – fen1x
いいえ私はただプロンプトを宣言していません。私はTGT_DOP.sqlの名前とIDの変数値を使用することができます – Andrew
あなたはsysdsteではないsys_dateを持っていて、vtodayがinto関数の変数でなければならないということに同意する傾向があり、where節はありません –