プロが教えるわが家の防犯対策術!

お世話になります。
Long型列の先頭250バイトが欲しいのですが
Select Substr(FIELD01, 1, 250) from TABLE01
とすると、 ORA-00932 が返ってきてしまいます。
なにかいい方法ありませんでしょうか?

できれば、PL/SQLは使いたくなく、別テーブルをCreate Table as Selectも避けたいです。

A 回答 (3件)

こんにちは。



>>やっぱ、諦めざるをえないですかね。。。
そうですね・・・。
いったんLOBに変更できてしまえば、DBMS_LOB.SUBSTR()でもできますが、
このTO_LOB()が厄介で・・・。
(普通のSELECTでは使えないんですよね~)
PL/SQLが駄目ということですが、自作関数レベルならいいのではないでしょうか?
それでよければ具体例など提示しますが・・・。

この回答への補足

taka451213さん
返信遅くなり申し訳ありません。
ご回答ありがとうございます。
考え見ると、ご指摘の通り、自作関数レベルならいい気がします。
差し支えなければ、具体例をご教示いただけませんでしょうか?

補足日時:2009/01/06 15:15
    • good
    • 0

こんにちは。



すみません、やってみたら無理でしたね・・・。

>>できれば、PL/SQLは使いたくなく、別テーブルをCreate Table as Selectも避けたいです。
どちらかを諦めるしかないようです・・・。^^;
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
そうですか、やっぱ、諦めざるをえないですかね。。。

お礼日時:2008/12/28 23:35

こんばんは。



多分・・・、
Select Substr(TO_CHAR(FIELD01), 1, 250) from TABLE01
ですか。

関係ないですが、LONGは使用しない方がいいですよ。
    • good
    • 0
この回答へのお礼

ありがとうございます。
残念ですが、TO_CHARで ORA-00932が発生していまいます。

ご指摘の通り、LONGは使用したくないんですが、既にあるテーブルが
もうLONGでできていて、そこにアクセスする追加処理を作る必要が生じ
いかんともしがたい状況です。

お礼日時:2008/12/26 19:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す