• 締切済み

LONG型の先頭250バイトを Varcharとして取得できますか?

お世話になります。 Long型列の先頭250バイトが欲しいのですが Select Substr(FIELD01, 1, 250) from TABLE01 とすると、 ORA-00932 が返ってきてしまいます。 なにかいい方法ありませんでしょうか? できれば、PL/SQLは使いたくなく、別テーブルをCreate Table as Selectも避けたいです。

みんなの回答

回答No.3

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

kurinkurinkurin
質問者

補足

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

すると、全ての回答が全文表示されます。
回答No.2

こんにちは。 すみません、やってみたら無理でしたね・・・。 >>できれば、PL/SQLは使いたくなく、別テーブルをCreate Table as Selectも避けたいです。 どちらかを諦めるしかないようです・・・。^^;

kurinkurinkurin
質問者

お礼

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

すると、全ての回答が全文表示されます。
回答No.1

こんばんは。 多分・・・、 Select Substr(TO_CHAR(FIELD01), 1, 250) from TABLE01 ですか。 関係ないですが、LONGは使用しない方がいいですよ。

kurinkurinkurin
質問者

お礼

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

すると、全ての回答が全文表示されます。

関連するQ&A