Oracle の SQL で DISTINCT を使って重複行を削除しようとしても
SELECT のカラムに LOB 型があると ORA-00932 というエラーが出る。
これは型が不適合というエラーのようだ。
LOB 型を ORDER BY 句や WHERE 句の中で使っても
同様のエラーが出る。
LOB 型を単純に比較することができないのでこのエラーが出るのだろう。
Tuesday, January 17, 2006
Oracle のスクリプトで空行によるエラーが出るとき
Oracle でスクリプトを走らせる場合、SQL 文の途中に空行があると
SP-0734 というエラーが出てしまう。これは SQL*Plus で
SQL 文をコピー&ペーストしたときも同じ。ペーストした
SQL 文の途中に空行があると同じエラーが出てしまう。
SQL*Plus 内で
@hoge.sql
を実行したときは問題ないのだが、
sqlplus username/password@orcl <hoge.sql
のようにしたときにはこの問題が出る。
SP-0734 というエラーが出てしまう。これは SQL*Plus で
SQL 文をコピー&ペーストしたときも同じ。ペーストした
SQL 文の途中に空行があると同じエラーが出てしまう。
SQL*Plus 内で
@hoge.sql
を実行したときは問題ないのだが、
sqlplus username/password@orcl <hoge.sql
のようにしたときにはこの問題が出る。
Monday, January 16, 2006
Oracle 10g における VIEW の外部結合でエラー
Oracle 10g で VIEW をつくって、それらを完全外部結合したら
ORA-03113 エラーが発生してしまう。ネットで調べてみると
同様の現象が報告されていて、どうも Oracle のバグらしい。
Oracle 再起動で直ることもあるとか。非力なマシンで
やっているので、もっとマシなサーバでやればうまくいくのかもしれない。
とりあえず、VIEW をテーブルにコピーして、テーブルを
外部結合させたらうまくいった。
SELECT top.seq_no top_news_grp,
general.seq_no general_news_grp,
stock.seq_no stock_news_grp,
money.seq_no money_news_grp
FROM
v_top_news_grp top
FULL OUTER JOIN
v_general_news_grp general ON ( top.seq_no = general.seq_no )
FULL OUTER JOIN
v_stock_news_grp stock ON ( top.seq_no = stock.seq_no OR general.seq_no = stock.seq_no )
FULL OUTER JOIN
v_money_news_grp money ON ( top.seq_no = money.seq_no OR general.seq_no = money.seq_no
OR stock.seq_no = money.seq_no );
ORA-03113 エラーが発生してしまう。ネットで調べてみると
同様の現象が報告されていて、どうも Oracle のバグらしい。
Oracle 再起動で直ることもあるとか。非力なマシンで
やっているので、もっとマシなサーバでやればうまくいくのかもしれない。
とりあえず、VIEW をテーブルにコピーして、テーブルを
外部結合させたらうまくいった。
SELECT top.seq_no top_news_grp,
general.seq_no general_news_grp,
stock.seq_no stock_news_grp,
money.seq_no money_news_grp
FROM
v_top_news_grp top
FULL OUTER JOIN
v_general_news_grp general ON ( top.seq_no = general.seq_no )
FULL OUTER JOIN
v_stock_news_grp stock ON ( top.seq_no = stock.seq_no OR general.seq_no = stock.seq_no )
FULL OUTER JOIN
v_money_news_grp money ON ( top.seq_no = money.seq_no OR general.seq_no = money.seq_no
OR stock.seq_no = money.seq_no );
Subscribe to:
Posts (Atom)