テーブルに格納されているSQLクエリを実行する方法

サブハッシュティワリ

SQLクエリを格納する列の1つを持つテーブルがあります。

create table test1
(
    name varchar(20),
    stmt varchar(500)
);

insert into test1 (name, stmt) 
values ('first', 'select id from data where id = 1;')

データテーブルは次のようなものです。

create table data
(
    id number,
    subject varchar(500)
);

insert into data (id, subject) values (1, 'test subject1');
insert into data (id, subject) values (2, 'test subject2');
insert into data (id, subject) values (3, 'test subject2');

これでtest1挿入するたびに、のstmt列に挿入されるクエリを実行し、クエリされたtest1データを結果テーブルに挿入する必要があります。

create table result
(
    id number,
    subject varchar(500)
);

そのために、test1次のようにすべての挿入で実行されるトリガーを作成しています。

create or replace TRIGGER  "TEST_AFTER_INSERT" 
BEFORE INSERT or UPDATE ON test1
FOR EACH ROW
DECLARE
sql_stmt VARCHAR2(500);
BEGIN
select stmt into sql_stmt from data where name = :NEW.name;
insert into result(id, subject)
select id,subject from data where id in ('stmt');
END; 

これを実現する方法を教えてください。上記のトリガーは、私が理解できないエラーをスローしています。

ポパイ

次のように、トリガーで動的クエリを使用できます。

CREATE OR REPLACE TRIGGER "TEST_AFTER_INSERT" AFTER  -- CHANGED IT TO AFTER AS NAME SUGGESTS
    INSERT OR UPDATE ON TEST1
    FOR EACH ROW -- REMOVED DECLARE SECTION
BEGIN
    EXECUTE IMMEDIATE 'INSERT INTO result
    SELECT ID, SUBJECT FROM DATA WHERE ID IN ('
                      || RTRIM(:NEW.STMT, ';')
                      || ')';
     -- SINGLE QUERY TO INSERT THE DATA
     -- USED RTRIM AS STMT HAS ; AT THE END
END;

乾杯!!

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

テーブルの列に格納されているクエリの実行

分類Dev

SQLテーブルに格納されているXMLの柔軟なクエリを作成する方法

分類Dev

他のテーブルMySQLに格納されているクエリのwhere条件を適用する方法

分類Dev

PHPの変数に格納されているSQLクエリを実行する方法

分類Dev

テーブルとテーブルに格納されている列名をクエリします

分類Dev

テーブルに格納されているテーブルと列の情報に基づいてSQLクエリを動的に構築する

分類Dev

SQL Server:1時間ごとにクエリを実行し、結果をテーブルに格納する方法は?更新時にそれらを交換してください

分類Dev

テーブル間で異なる方法で格納されているuuidを結合するMySqlクエリ

分類Dev

Python:テーブルの行の値(ベクトルに格納されている)を選択する方法は?

分類Dev

テーブルに格納されている値に対してビット演算を実行し、SQLクエリのwhere句で使用するにはどうすればよいですか?

分類Dev

SQL*Plus で変数に格納されたクエリを実行する方法

分類Dev

リンクリスト:SQLテーブルに格納されているチェーンリストの最初と最後の要素をクエリします

分類Dev

エアスマティック演算子がSQLデータベースに格納されている場合にSQLクエリでエアスメティック演算を実行する方法

分類Dev

MSAccessを使用したSQLクエリのテーブル列に格納されているワイルドカードを使用する

分類Dev

ディクショナリテーブルに格納されているクエリをCURSORに実行するにはどうすればよいですか?

分類Dev

Luaはテーブルのキー値に格納されているものを実行します

分類Dev

(My)SQLテーブルに格納されているアイテムからリストを生成する

分類Dev

HTMLページのリストに格納されているタプルのクエリを印刷する方法

分類Dev

配列に格納されている_idを使用してgolangからmongodbにクエリを実行する

分類Dev

テーブルの列に格納されている動的SQLステートメントを実行します

分類Dev

ベクトルに格納されているオブジェクトに格納されているデータを一意にする方法は?

分類Dev

変数に格納されているクエリを実行し、Oracleで結果を読み取ります

分類Dev

ルックアップテーブルに対して実行されている複数のサブクエリを最適化する方法

分類Dev

単一のクエリを使用して、異なる変数に格納されている複数のテーブル行の数を取得するにはどうすればよいですか?

分類Dev

mybatis mapperxmlで実行されているSQLクエリをコンソールに出力する方法

分類Dev

kafkaのストリーム/テーブルに対して実行されているクエリを確認する方法はありますか?

分類Dev

その情報がセカンダリテーブルに格納されている場合、SQLでページの最新バージョンをクエリするにはどうすればよいですか?

分類Dev

列に格納されている式を実行する

分類Dev

子テーブルで使用されていない親テーブルの行を削除するSQLクエリ

Related 関連記事

  1. 1

    テーブルの列に格納されているクエリの実行

  2. 2

    SQLテーブルに格納されているXMLの柔軟なクエリを作成する方法

  3. 3

    他のテーブルMySQLに格納されているクエリのwhere条件を適用する方法

  4. 4

    PHPの変数に格納されているSQLクエリを実行する方法

  5. 5

    テーブルとテーブルに格納されている列名をクエリします

  6. 6

    テーブルに格納されているテーブルと列の情報に基づいてSQLクエリを動的に構築する

  7. 7

    SQL Server:1時間ごとにクエリを実行し、結果をテーブルに格納する方法は?更新時にそれらを交換してください

  8. 8

    テーブル間で異なる方法で格納されているuuidを結合するMySqlクエリ

  9. 9

    Python:テーブルの行の値(ベクトルに格納されている)を選択する方法は?

  10. 10

    テーブルに格納されている値に対してビット演算を実行し、SQLクエリのwhere句で使用するにはどうすればよいですか?

  11. 11

    SQL*Plus で変数に格納されたクエリを実行する方法

  12. 12

    リンクリスト:SQLテーブルに格納されているチェーンリストの最初と最後の要素をクエリします

  13. 13

    エアスマティック演算子がSQLデータベースに格納されている場合にSQLクエリでエアスメティック演算を実行する方法

  14. 14

    MSAccessを使用したSQLクエリのテーブル列に格納されているワイルドカードを使用する

  15. 15

    ディクショナリテーブルに格納されているクエリをCURSORに実行するにはどうすればよいですか?

  16. 16

    Luaはテーブルのキー値に格納されているものを実行します

  17. 17

    (My)SQLテーブルに格納されているアイテムからリストを生成する

  18. 18

    HTMLページのリストに格納されているタプルのクエリを印刷する方法

  19. 19

    配列に格納されている_idを使用してgolangからmongodbにクエリを実行する

  20. 20

    テーブルの列に格納されている動的SQLステートメントを実行します

  21. 21

    ベクトルに格納されているオブジェクトに格納されているデータを一意にする方法は?

  22. 22

    変数に格納されているクエリを実行し、Oracleで結果を読み取ります

  23. 23

    ルックアップテーブルに対して実行されている複数のサブクエリを最適化する方法

  24. 24

    単一のクエリを使用して、異なる変数に格納されている複数のテーブル行の数を取得するにはどうすればよいですか?

  25. 25

    mybatis mapperxmlで実行されているSQLクエリをコンソールに出力する方法

  26. 26

    kafkaのストリーム/テーブルに対して実行されているクエリを確認する方法はありますか?

  27. 27

    その情報がセカンダリテーブルに格納されている場合、SQLでページの最新バージョンをクエリするにはどうすればよいですか?

  28. 28

    列に格納されている式を実行する

  29. 29

    子テーブルで使用されていない親テーブルの行を削除するSQLクエリ

ホットタグ

アーカイブ