• ベストアンサー
  • 困ってます

create table as select

create table 新TABLE as select * from コピー元TABLE; としたい場合に、"コピー元TABLE" に、LONGROW型項目があり、 失敗してしまいます。 何か、回避策はないでしょうか? 宜しくお願い致します。

共感・応援の気持ちを伝えよう!

  • Oracle
  • 回答数2
  • 閲覧数241
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.2

LONGROWが不要ならSELECTで列名を列挙してください。 とりあえず表を作りたいなら create table 新TABLE as select * from コピー元TABLE WHERE ROWNUM < 0

共感・感謝の気持ちを伝えよう!

その他の回答 (1)

  • 回答No.1

> create table as select これは、テスト時など一時的にテーブルをバックアップしたりするのによく使う構文ですが、 各フィールドの定義が分かっているなら普通に create table 構文を使えばよろしいかと。 まさか、業務でこの構文を使おうとしてる?

共感・感謝の気持ちを伝えよう!

質問者からの補足

はい、まさにテスト用に使おうとしてます。 よろしくお願いします。

関連するQ&A

  • Create Table 文

    基本的なことかもしれませんが、教えてください。 DB2, Sybase とかですと、Create Table 文をテーブル自体から抽出できます。 Oracle の場合、実際に存在するテーブルから、Create Table 文を生成する ことは可能なのでしょうか? よろしくお願い致します。

  • PostgreSQLで、元テーブルをコピーする時に制約も取得するには?

    PostgreSQLの質問です。 元テーブルを新規テーブルに項目だけコピーしたいのですが、 primary key などの制約も同時にコピーする方法を教えて頂けないでしょうか? 下記で、空のテーブルをコピーできると思ったのですが、これでは制約はコピーされないようです。 CREATE TABLE tableName_temp AS SELECT * FROM tableName WHERE 1 = 0 また、後付で制約をつけるにも、CREATE TABLE時にしかつけることができないみたいです。 何かよい方法がありましたら、宜しくお願い致します。

  • PRIMARY KEYのコピー

    テーブルのコピーを create table test1 as select * from test ; のように行っていますが、PRIMARY KEYも一緒にコピーしたいのですが、 どうすれば良いのでしょうか?

    • ベストアンサー
    • MySQL
  • create と join

    少し前にこれを使って連結したのを作成できたのですが 今回やったら、できませんでした・・・ === create table otamesi888 as select * from otamesi1 inner join otamesi2 on 1 = 1 こんな感じでできたツモリでした・・・ どの点がまずいのでしょうか? create も join も片方だとできるのですが・・・

  • SELECT文の二段重ね

    次のSQL文を実行します。 create table1 (id, english) insert table1 (1,"foo") insert table1 (2,"bar") create table2 (id, japanese) insert table2 (1, "ふー") insert table2 (2, "ばー") SQL文法としては誤ってますが、成功したとします。 いま、select id from table1 where english = 'foo'; で1が得られます。 いま、select japanese from table2 where id = 1; で"ふー"が得られます。 これを一つのSQLite3のselect文で実現できないでしょうか。 select japanese from table2 where id = (select id from table1 where english = 'foo'); で良いですか? カテゴリ選択にSQLiteが無いのは、人気が無いからですかね。

  • オラクルでデータベースに項目を追加する場合に

    オラクル初心者です教えてください。 バージョンが関係あるのかは分かりませんが、8.1.7です。 AAAテーブルに10個の項目があり、真中に項目を追加する場合に、今入っているデータを生かしたい場合にどうやってやればよいのでしょうか? ↓領域を増やす場合などはこうやっているのですが  項目がずれているので駄目ですよね? CREATE TABLE BBB AS SELECT * FROM AAA DROP TABLE AAA CREATE TABLE AAA(真ん中に項目追加後) INSERT INTO AAA SELECT * FROM BBB やっぱりINSERT分に項目を全部書かないとだめなのでしょうか?

  • PL/SQLのCREATE文でCHAR型で項目ができない

    PL/SQLで以下のようにCREATE文を発行しました。 Bテーブルの項目 項目1,'1'を持つテーブルを作成したいのです。 DECLARE  KBN CHAR(1);  WK_SQL VARCHAR2(4000); BEGIN  KBN := '1';  WK_SQL := 'CREATE TABLE A_TBL AS    SELECT B.項目1 , ' || KBN || ' AS A項目    FROM B_TBL B ' ;  EXECUTE IMMEDIATE WK_SQL; END; 結果はA_TBLの項目、A項目がどうしてもNUMBER型になるのです。初心者で、質問に不備なところもあるかもしれませんが、どうすればよいか、ご教授ください。

  • レコードのコピーについて

    PostgreSQLで質問があります。 table_Aの内容をtable_Bにコピーしたいと考えています。 create table table_B as select * from table_A; だと、table_Aのフィールドでserial型を使用しているため、 integerになってしまいます。 できれば上記以外でかつ、table_Bは既に作成されて いる状態でコピーを行いたいと考えています。 insert into table_b as select * from table_A; とかでできるんでしょうか? それとも他にいい案があるのでしょうか? 確認する環境がないのでわからないのですが、 どなたかご存知の方、お願い致します。

  • SELECTを含むUPDATEについて

    2つののテーブルがあり、テーブル1のデータを元にテーブル2を更新させたい場合、SELECT文を含むUPDATE文で更新出来ると思うのですが、どのようにしたら一番効率的でしょうか? 例)テーブル1~table1 no ken city ---------------------------------- 01 北海道 根室 03 青森 八戸 05 千葉 柏 08 埼玉 さいたま 09 東京 千代田区 例)テーブル2~table2 no ken city ---------------------------------- 01 02 03 04 05 06 07 08 09 テーブルが2つあり、テーブル1の情報を元にテーブル2を更新したい。 条件は、noが一致していること。 A) kenを更新するには、 ↓ UPDATE `table2` SET ken = (SELECT ken from table1 WHERE table1.no = table2.no) B) kenとcityを更新するには、 ↓ UPDATE `table2` SET ken = (SELECT ken from table1 WHERE table1.no = table2.no), city = (SELECT city from table1 WHERE table1.no = table2.no) SELECT以下が同じなのでもうちょっとスマートに短く記述する方法はあるんでしょうか?

    • ベストアンサー
    • MySQL
  • Create table文をエクセルから自動生成

    システム開発で、エクセルのテーブル定義から自動で、Create tableのSqlを自動生成したいと思ってますが、効率的な方法があれば、ご教授頂けないでしょうか。 エクセルからフリーソフト等のツール等を、介す方法でも構いません。 できるだけ容易にできるものを探しております。 テーブル定義に、入力されている項目には、以下のものがあり、これらをCreate table文に反映したいと考えてます。 テーブル名、項目名、型、桁数、Null制約、初期値、主キー