sqlplusでエラーが発生する不明なコマンド("FROM")の解決方法

このQ&Aのポイント
  • sqlplus経由で実行するとエラーが発生し、不明なコマンド("FROM")というメッセージが表示されます。
  • ORACLEのビュー作成時に利用しているSQL文に問題がある可能性があります。
  • 問題のある行に「SP2-0042: 不明なコマンドです("FROM")。行の残りは無視されました。」というエラーメッセージが表示されます。
回答を見る
  • ベストアンサー

不明なコマンドです("FROM")。行の残りは無視されました。 のエラー

T_地点,T_層,T_回 という三つのテーブルがあります。 それを組み合わせるSQLで下記のようなものがあります。 --------- CREATE VIEW V_地点 AS SELECT T_地点.ID, TABLE1.1A, TABLE1.2A, T_回.形 FROM T_地点,T_回, ( SELECT T_層.ID, T_層.点, MAX(DECODE(T_層.コード,'01',1)) 1A, MAX(DECODE(T_層.コード,'02',1)) 2A FROM T_層 GROUP BY T_層.ID ) TABLE1 WHERE T_地点.ID = TABLE1.ID AND T_地点.ID = T_回.ID; --------- これをORACLEのビュー作成で実行するとエラーがでないのですが、 sqlplus経由で実行するとエラーがでます。 SP2-0042: 不明なコマンドです("FROM")。行の残りは無視されました。 SP2-0734: "T_..."で開始するコマンドが不明です - 残りの行は無視されました。 どなたかわかるかたがいらっしゃいましたらご教授ねがいます。

  • Oracle
  • 回答数1
  • ありがとう数2

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

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

無駄な空行が邪魔してるんじゃないですか?

gonchin01
質問者

お礼

自己解決しました。すみません。 ありがとうございました!

関連するQ&A

  • matlab:最初のX行を無視して、残りの行全部を読み込むというコマンドが無かったでしょうか。

    matlab R2006aを使用しています。ファイルの先頭行から任意行までが文字列のアスキー形式データファイルがあります。 csvreadやloadでこのファイルを読み込もうとすると、文字列行と数値行などのビット長が違うためエラーとなります。 このようなファイルを読み込むためにあるファイルの先頭から任意行までを消去して残りの数値行をメモリに読み込むというコマンドがあったのを記憶していますが、見つけることができませんでした。どなたかご存知内でしょうか。 csvreadの範囲指定で読み込むというのでは、あらかじめ範囲がわかっていないとできないので、最初のX行までは無視して、残りの行を全部読み込むコマンドが必要となっています。

  • 速度向上。

    速度向上。 Select A,B,C, (Select Count(*) FROM T_A WHERE SOME_ID = A.SOME_ID ) COUNTER , (Select MAX(REGISTER_TIME)FROM T_A WHERE SOME_ID = A.SOME_ID)MAX_REG_TIME FROM T_A as A WHERE ID LIKE '%1%' GROUP BY ID ORDER BY MAX_REG_TIME; テーブルT_AからIDに1が含まれるデータを全て抽出し、かつそれぞれのカウントを抽出し、かつ最新更新日でソートしたいと思います。 データ数が2000程度のテーブルで30秒ほどの時間がかかります。 より速くする良い方法はありますでしょうか?

    • ベストアンサー
    • MySQL
  • viewでfrom句にサブクエリが書けない

    こんにちは。MYSQLのVIEWの代替についてお教え下さい。 下記でinner joinについて教えて頂きました。 http://okwave.jp/qa/q7296711.html 環境はWin 7 MYQL5です。 t1テーブルのデータ ID,在庫 001,22 t2テーブルのデータ ID,出庫 001,17 001,3 SELECT A.z AS `在庫`,B.* FROM (SELECT SUM(stock) AS z FROM t1 WHERE id='001' GROUP BY id) A INNER JOIN t2 B ON A.id=B.id というコードで、それぞれのテーブルをグループ化してグループ化したもの同士をJOINしました。 このコードを元にVIEWを作り、そのVIEWを対象にクエリを作ろうと考えていました。 しかしながら、MYSQLのVIEWではFROM句でサブクエリは使えませんでした。 http://www.klab.jp/media/mysql/index4.html 上記のコードを書きなおして、なんとしてもVIEWで利用したいのですが、FROM句でサブクエリを使わずにVIEWを作成する方法がわかりません。 どのようにリライトすればよいか、ご助言お願い致します。

    • ベストアンサー
    • MySQL
  • 単一行副問合せにより2つ以上の行が返されます。エラーになります。

    単一行副問合せにより2つ以上の行が返されます。エラーになります。 お世話になります。 下記SQLを実行するとエラー”単一行副問合せにより2つ以上の行が返されます。” になってしまいます。 ご教授お願いします。 table1のcol01にtable2のcol01を table1のcol02にtable2のcol02を table2のcol03が3、table2のcol05が5で且つ table1のcol06とtable2のcol06が一致する場合に 変更したく下記SQLを作成しました。 update table1 set (col01,col02) = (select col01,col02 from table2 t2,table1 t1 where t2.col03 = 3 and t2.col05 = 5 and t2.col06 = t1.col06) where t1.col06 in (select col06 from table2); 以上 よろしくお願いします。

  • 金額が確定されなかった品物の価格履歴を削除するDelete文

    各品物の価格変動の履歴と確定値を残す 下のようなテーブル(T_Rireki)があるとします。 | HinBan | Junban  | Nedan  | Kakuteki | ---------------------------------------- |   A   |   1   |   90   |   0    | |   A   |   2   |   80   |   0    | |   A   |   3   |   70   |   1    | |   B   |   1   |   95   |   0    | |   B   |   2   |   90   |   0    | |   B   |   3   |   95   |   0    | |   C   |   1   |   35   |   0    | |   C   |   2   |   30   |   1    | ここから、値段が確定していない( 列 Kakutei の値が 最終的に 1 になっていない) 品番を探し(この場合は、B) それをテーブルから削除したいのです。 目的の行の抽出は、 Select * from T_Rireki as T1 Where (select Max(Kakuteki) from T_rireki where HinBan= T1.HinBan) = 0 もしくは、 Select HinBan , Max(Kakuteki) as M_Kakutei from T_Rireki group by Hinban Having M_Kakutei = 0 などによって、 | HinBan | Nedan | -------------------- |   B  |   95  | |   B  |   90  | |   B  |   95  | の目的の3行を得ることができますが、この3行を削除するためにDelete文に上記のSQLを含もうとするとエラーがでます。 例えば、 Delete from T_Rireki as T1 Where (select Max(Kakuteki) from T_rireki where HinBan= T1.HinBan) = 0 では、うまくいきません。 どのような文にすればいいか、わかる方、どうか教えていただけないでしょうか?

  • MySQLのSQLコマンドで

    全部で100万行のテーブル(tとする)を取り込むのに (例えばcreate table t(id int,name text,address text);のデータ) select * from t; とすると時間がかかります これを早くするコマンドはないでしょうか? 最後にはとったデータの各行を加工してファイルにします

    • ベストアンサー
    • MySQL
  • ユニオンクエリ 「FROM 句の構文エラーです。」

    ユニオンクエリで複数のテーブルをつなげたいのですが SELECT * FROM 2003(T_案件) UNION ALL SELECT * FROM 2004(T_案件); とすると、 「FROM 句の構文エラーです。」 となります。 二つのフィールドの名前や数やデータ型は一緒のはずです。 何がダメなのでしょうか?

  • ERROR 1054 (42S22) 原因不明です

    idはintでプライマリー a5はchar(10)で日本語文字列を格納 データを取得しようとすると#1054エラーがでます。 admin-------- SELECT * FROM `aaa` WHERE `a5`=`あいうえおかき` #1054 - Unknown column 'ã moniter-------- mysql> SELECT * FROM `aaa` WHERE `a5`=`あいうえおかき`; ERROR 1054 (42S22): Unknown column '縺ゅ>縺・∴縺翫°縺・ in 'where clause' `あいうえおかき`の日本語に問題があると思い半角データを1行だけ更新しました。 admin-------- SELECT * FROM `aaa` WHERE `a5`=`abcde` #1054 - Unknown column 'abcde' in 'where clause' moniter-------- mysql> SELECT * FROM `aaa` WHERE `a5`=`abcde`; ERROR 1054 (42S22): Unknown column 'abcde' in 'where clause' admin-------- moniter-------- SELECT * FROM `aaa` WHERE `a5` SELECT `a5` FROM `aaa` WHERE 1 SELECT * FROM `aaa` WHERE `id`=89584 成功

    • ベストアンサー
    • MySQL
  • 複数行の結果を単一列に連結(複数のテーブルを参照)

    psql (PostgreSQL) 7.3.4です。 困っています 以下のような【TABLE1】と【TABLE2】を TABLE1のt1tot2にで結合した結果を 【A.結果】のように★▲●の行を1行に表示させて取得したいのですがうまくいきません。 【TABLE1】 ID,ID_SUB, TYPE, VALUE A A1 t1 1 ★ A A1 t2 2 ★ A A1 t1 1 ▲ A A1 t2 3 ▲ B B1 t1 1 ● B B1 t2 3 ● 【TABLE2】 ID, TYPEV1 ,TYPEV2 ,Code A 1 1 AAA1 A 1 2 AAA2 ★ A 1 3 AAA3 ▲ B 1 3 BBB1 ●  TYPEV1=TABLE1のt1の値 TYPEV2=TABLE1のt2の値 【得たい結果】 ID, ID_SUB, TYPEV1, TYPEV2,Code A A1 1 2 AAA2★ A A1 1 3 AAA2▲ B B1 1 3 BBB1● 下記でTABLE1の2行を1行にまとめることができましたが、 問題のTABLE2との連結方法が分かりません。 select TABLE1.ID , TABLE1.ID_SUB , TABLE1.VALUE as t1 , (SELECT tbl1.VALUE FROM TABLE1 tbl1 where tbl1.TYPE=t2 and (TABLE1.ID , TABLE1.ID_SUB)=(tbl1.ID , tbl1.ID_SUB)) as t2 from TABLE1 where TABLE1.TYPE = t1 【結果】 ID ,ID_SUB , t1  ,t2 A A1 1 2 ★ A A1 1 3 ▲ B B1 1 3 ● 何か良い方法はありますでしょうか?

  • テーブル間の結合

    次のような操作をしたいのですが、 Table1 CD 1 2 3 Table2 ID TT 1 1 1 2--ココ 2 1 2 2--ココ 結果 Table1とTable2を関連づけて CD ID TT 1 1 2 2 2 2 Table2のTTをMAX関数を使っての参照です。 ちなみに次のようなSQL文ではエラーとなりました。 select T1.CD , T2.ID , MAX(T2.TT) from Table1 T1 INNER JOIN Table2 T2 ON(T1.CD = T2.ID) GROUP BY T2.ID アドバイス等がありましたら、宜しくお願いします。