私はテーブルからすべての行とフィールドを返したいと思います。テーブル名とフィールド名はあらかじめわかっていません。以下のような何か:有望と思われる Oracle SQL Select文で動的にテーブルに名前を付ける方法は?
EXECUTE IMMEDIATE
select * from test_cursor
が与える
select * from [TABLENAME]
、しかし、私複数の行を返すにはカーソルが必要だと読んで、私は例を見つけることができません。
非常に簡単で高速な解決策が望ましい(つまり、行ごとの処理を避けたい)。
機能や手順の作成を避けたいですが、避けられないこともあります。たぶん私はテーブル関数を使用する必要がありますか?
多分次のようなものでしょうか?あなたの条件の
CREATE OR REPLACE FUNCTION GetTable(table_name CHAR)
BEGIN
EXECUTE IMMEDIATE 'CREATE TABLE temp_table
AS (SELECT * FROM :1)' USING table_name;
END;
SELECT * FROM table (temp_table)
THX
チェックパッケージ[:手順(誰か、私の構文を訂正)として、
または:
長い答えはDBMS_SQL](https://docs.oracle.com/database/121/ARPLS/d_sql.htm#ARPLS058)では、完全な動的SQL文を実行できます。 –