質問: ### やりたいこと ---------- スキーマ1にビューがあります。 このビューをスキーマ2にテーブル定義だけコピーしたいです。 ### 試したこと --------- masterユーザーで下記のSQLを実行しました。 ``` create table スキーマ2.作成するテーブル名 like スキーマ1.ビュー名; ``` ### 試した結果 --------- ORA-00922:オプション指定されていないか、または無効です。 ### 解決に向けた試み ------------ 「oracle ビュー テーブル定義 コピー」というワードでググりましたが、 うまい結果がヒットしませんでした・・・ Oracle初心者で、他に適切な検索ワードがあればご教授頂きたいです。 よろしくお願いいたします。
回答: スキーマ1 で ``` GRANT SELECT ON TABLE_NAME1 TO スキーマ2 ; ``` スキーマ2 で ``` CREATE TABLE TABLE_NAME1 AS SELECT * FROM スキーマ1.TABLE_NAME1 WHERE 0 = 1 ; -- 条件はあり得ないものとすることでテーブル定義だけスキーマ2に設定できる。 ``` PRIMARY KEY, INDEX, COMMENT ON は元スキーマを参考に追加。Oracle DDL取得 を参考に。 スキーマ1 で ``` REVOKE SELECT ON TABLE_NAME1 FROM スキーマ2 ; ```