宗教上家系ラー食

宗教上の都合家系ラーメン食べます。

仕事関係のIT情報(ソフト、ハート、ガジェット、周辺機器)から趣味の写真、株、バイク等幅広く何でも書いていく備忘録的ブログです。

MENU

Oracle7でテーブル結合してるクエリを流したらエラーになった。

移転しました。

f:id:AoiKugayama:20200219185424j:plain

今どき、Oracle7.x.xバージョンを使っている人はそうそういないと思うけど、僕たちは使っている。ちなみに最新パージョンはOracle Database 18cだ。すごい、かっこいい。

何をしたかったかというと、VBAでOracleDBからテーブルを結合して情報を取得したかったです。取得しようと実行すると、エラーを吐かれました。

[ORAエラー] ORA-00933: SQLコマンドが正しく終了されていません。

その後、いろいろ試行錯誤してるとエラーが変わりました。

[ORAエラー] ORA-00936: 式がありません

これば単純なSQLの間違いではないのか?と思い調べてみるとOracleのバージョンの古さが原因で、本来ならば実行できるクエリを理解してくれていませんでした…。

 

やろうとしたこと

select
 *
from
 A
 left outer join B
  on A.col1 = B.col1
where
 B.col2 = 'b'

 テーブルを結合して、条件をしてして取得です。これがえらーになったよ…。

やったこと

select
 *
from
 A,B
where
  A.col1 = B.col1(+)
 and

  B.col2 = 'b'

 Oracleでは「(+)」を用いて外部結合することができるということでした。Oracle独自の落とし穴ですね。(+)を使用して、結合条件を書き直してやればすんなり通りました。

 

古いバージョンのOracle Databaseを使っていて、結合で躓いたら(+)を使いましょう。

 

stay cool!

 

aoikugayama.hatenablog.com

にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村