Kenji のすべての投稿

ORA-01799: 列は副問合せに対して外部結合されません。


今日もエラーが出ました。

ORA-01799: 列は副問合せに対して外部結合されません。

下のように解決しました。 (使っているデータベースは Oracle 10g11g のどっちかでした。)

事例 1

エラーが出たのは次の結合条件。

LEFT JOIN で結合するテーブルの結合条件に副問合せをつかうと駄目みたいです。

期待する結果

上のコードでやりたいのは、 JNYUKA.BUNNO がメインテーブルの値(MAIN.BUNNO)以下になっているもので、最大のものをとることです。下のように。

MAIN BUNNO JNYUKA BUNNO FNY BUNNO
1 1 1
2 2 2
3 2

上のコードではエラーがでます。 カーソルを使っていったんテーブルに入れるのも面倒です。そこで・・・

このようにすればエラーはでません。 BUNNOがメインテーブル以下のものをすべて結合した後で、最大のもののみに絞り込むイメージ。

事例 2

別の例があったので・・・

Oracleで子テーブルの最新を外部結合できない!? で次のコードを見つけました。

この場合だと

とすればいいことになります。

ON ではなくて JOIN の中に条件を入れてしまう方法でも解決できます。


How to install VMWare Tools


I installed VMWare Tools into Debian 6 on VMWare on Windows XP SP3. It was too difficult.

VMware requires linux-header 2.6.32-5-686 and gcc-4.3. I guess it’s because gcc-4.3 is the base of linux-headers. But why does VMWare Tools require linux-headers? and why installing VMWare tools is such complicated? Error message was showed many time.

If you execute vmware-install.pl after installing linux-headers (and gcc-4.3), the program detects the location of the gcc and linux headers correctly.


複数のSQLを一度に実行するためのスクリプト


Oracle では、PL/SQL や CREATE 文 をファイルにしておいて、ファイルにしたスクリプトを実行することができる。

(Windows では) plsql を開き、下のように@マークの後にファイル名を続けて書いて Enter を押せば OK だ。

@"C:Folderxxx.sql" 続きを読む 複数のSQLを一度に実行するためのスクリプト