web-dev-qa-db-ja.com

動的SQLのタイムスタンプを含むsysdateで日付列を更新する方法

    CREATE OR REPLACE PROCEDURE TESTPROC
IS
   l_update_str   VARCHAR2 (4000);
BEGIN
   l_update_str :=
      'UPDATE XX_TABLE 
             last_update_date = ''' || SYSDATE || ''',
       WHERE     1=1';

   EXECUTE IMMEDIATE l_update_str;
END;
/

上記を試しましたが、機能しません。 to_date(to_char(sysate))を使用してみましたが、タイムスタンプがありません

3
LearnOracle

Systimestampを入力するだけで、列にタイムスタンプを設定できます。

CREATE OR REPLACE PROCEDURE TESTPROC
IS
   l_update_str   VARCHAR2 (4000);
BEGIN
   l_update_str :=
      'UPDATE test1
set name1 = SYSTIMESTAMP(6)
where 1=1';

   EXECUTE IMMEDIATE l_update_str;
END;
1
PLSQL_007