sql >> データベース >  >> RDS >> Oracle

テーブル名からの%ROWTYPE変数

    おそらくこれを行うことはできません(少なくとも役に立たない)。

    匿名のPL/SQLブロック全体を作成できます

    v_plsql := 'DECLARE ' ||
               '  l_row ' || p_table_name || '%rowtype; ' ||
               'BEGIN ' ||
               '  SELECT * ' ||
               '    INTO l_row ' ||
               '    FROM ' || p_table_name ||
               '    WHERE id = ' || p_some_old_value || ';' ||
               ...
    EXECUTE IMMEDIATE v_plsql;
    

    ただし、一般に、実行時に動的PL / SQLに頼り始めるずっと前に、一歩下がって、問題に対する簡単な解決策がないかどうかを評価する必要があります。たとえば、テーブルごとにCRUDパッケージを動的に生成するフレームワークはいくつもあります。これは動的PL/SQLを使用していますが、データを更新するたびに実行するのではなく、ビルドの一部として1回だけ実行します。



    1. UbuntuマシンにOracleInstantClientとpdo_ociをインストールするにはどうすればよいですか?

    2. 今月に作成されたレコードを取得するにはどうすればよいですか?

    3. DateTimeを5、15、30、および60分間隔にグループ化します

    4. Mysqlでddlスキーマ生成を使用すると、ONDELETECASCADEオプションが生成されません