投稿者 |
投稿 |
|
#1 2009 年 11 月 21 日(土) 1:04
|
会員
登録者: 4 2009
返信数: 5
|
こんばんわ。
ORACLEでSQLにて問い合わせを行うと件名の[Ora]ORA-00936 式がありません。
とエラーが出ます。
色々、調べてみたのですが分からず困っています。
ご教示下さい。
SQLは下記の形になっております。
$sql = "select ID,区分,契番号,契約者名 from tbl1 union " . "select ID,区分,契番号,契約者名 from tbl2 where 番号='num' ORDER BY ID DESC;";
よろしくお願いいたします。
|
|
#2 2009 年 11 月 24 日(火) 22:35
|
管理者
登録者: 10 2005
返信数: 38
|
誰からも反応がないですね Oracleは詳しくないのではずしているかもしれませんがー 1. 番号というカラムが無いようですが問題ないですか? 2. 番号というわりに文字列「num」と比較しているように見受けられます.問題ないですか? とどのつまり「そのSQLそもそも期待通りの動作しますか?」ということです.
|
|
#3 2009 年 11 月 24 日(火) 23:59
|
会員
登録者: 4 2009
返信数: 5
|
ELF さん
ありがとうございます。
ご回答が頂けず、困っておりました。
SQLはソースをコピーしたものではないので少し間違えておりました。
$sql = "select ID,区分,契番号,契約者名 from tbl1 union " . "select ID,区分,契番号,契約者名 from tbl2 where 契番号='num' ORDER BY ID DESC;";
ご指摘があるまで気づきませんでした。
上記が正しいソースになります。
振り出しに戻った形ですがよろしくお願い致します!
|
|
#4 2009 年 11 月 25 日(水) 12:00
|
会員
登録者: 8 2009
返信数: 103
|
こんにちは、 誰からも反応がないのは、単に環境が不明確でESPもとい不確実性想像でしか答えることができないからでしょう。 想像で答えても後だし条件とか出されるとげんなりします。 phpやOracleのバージョンもなければphpからどのように(odbcとかpdoとかローカルからとか)Oracleにアクセスしているかさえ情報がありません。
閑話休題、 私もOracleに詳しくないのですが、SQLをみるとカラム名にマルチバイトを使用してますね。 ちょっと検索したらOracle8i(R8.1.6)以降、必ず二重引用符(")で囲まれた引用識別子を使用しなければならない仕様となっているようです。 ELFさんからも指摘されてますがそのSQLはOracleで正常に動作するのですか? 詳しい環境とphp以外でそのSQLの結果が返ってくるのか知りたいところです。
|
|
#5 2009 年 11 月 25 日(水) 16:58
|
管理者
登録者: 10 2005
返信数: 38
|
まさに ググレなんとかかもしれない気がしますがせめて最初の数件程度でも確認済みですか? « 最終編集者 ELF 日時 2009 年 11 月 25 日(水) 17:00. »
|
|
#6 2009 年 11 月 25 日(水) 23:20
|
会員
登録者: 4 2009
返信数: 5
|
nulla さま ELF さま
ありがとうございます。
先ほどあれこれ触っていて解決いたしました。
>>nullaさま おっしゃるとおりです。 もっと的確に情報をお出しした上でご教示いただくべきでした。 今後は気をつけるようにします。
>>ELFさま 当方でもgoogleで調べたりはしていたものの分からず投稿させて頂きました。
ご提示したSQLは長い構文の抜粋でした。
その長いSQLの中に「工事日(AM/PM)」というカラムがありこれが原因でした。
[]や""でくくっていたのですがエラーは変わらず''で 囲った所、正常に稼動いたしました。
みなさまアドバイス頂きありがとうございました。
今後ともよろしくお願い致します。
|