• ベストアンサー

ORACLEでLONG項目からCHAR項目へ桁数指定で文字列を抽出

ORACLEでLONG項目からCHAR項目へ桁数指定で文字列を抽出したいのですが、方法はありますか? LONG項目の先頭から30桁分の文字を抽出し、CHAR項目に入力したいのですが。 会社で使用しているERPパッケージでLONG項目があり、どうしてもこの項目から文字が抽出したいのです。 回答のほど宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • fuzy
  • ベストアンサー率19% (4/21)
回答No.2

ちょっと質問の意図がわからないのですが、 例えば、T1,T2の2つのテーブルがあったとして、 T1のnumというnumber(10)の項目があって、その中から 先頭の5桁を取ってきて、T2のcommentというCHAR(5)の 項目に転送するなら、 まず、T1のnumから5文字取ってきて、それを変数hoge[chr(5)]に入れる。 select substrb(to_char(num),1,5) into hoge from t1 where id=1; それから、hogeをT2のcomment列に挿入する。 insert into t2(id,comment) values (1,hoge); んで、最後にcommitしたらOKです。 こんなもんでよかったでしょうか?

mrx-3
質問者

お礼

なるほど!ようやく分かりました! 俺って最悪に頭わるいっすね。 ありがとうございました。

その他の回答 (1)

  • fuzy
  • ベストアンサー率19% (4/21)
回答No.1

変数名をhogeとする。 substrb(to_char(hoge),1,30) これで先頭から30byteの文字列を取り出しできます。

mrx-3
質問者

補足

もう少し教えて頂きたいのですが、 今、GEMというテーブルがあります。 テーブルの項目定義は下記の様になっています。 <項目定義> GEM_ID RAW(8) NOT NULL, GEM_SEQ NUMBER(10) NOT NULL, GEM_DATA LONG, SELECT文を普通に書くと、 SELECT SUBSTRB(GEM_DATA,1,30) FROM GEM となりますよね。 で、hogeをこれに組み込もうとした場合はどうすれば良いのでしょうか。 本当に初心者ですみません。宜しくお願いします。

関連するQ&A