- ベストアンサー
ORACLEでLONG項目からCHAR項目へ桁数指定で文字列を抽出
ORACLEでLONG項目からCHAR項目へ桁数指定で文字列を抽出したいのですが、方法はありますか? LONG項目の先頭から30桁分の文字を抽出し、CHAR項目に入力したいのですが。 会社で使用しているERPパッケージでLONG項目があり、どうしてもこの項目から文字が抽出したいのです。 回答のほど宜しくお願いします。
- mrx-3
- お礼率42% (3/7)
- その他(データベース)
- 回答数2
- ありがとう数4
- みんなの回答 (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です。 こんなもんでよかったでしょうか?
その他の回答 (1)
- fuzy
- ベストアンサー率19% (4/21)
変数名をhogeとする。 substrb(to_char(hoge),1,30) これで先頭から30byteの文字列を取り出しできます。
補足
もう少し教えて頂きたいのですが、 今、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
- 指定した文字列が抽出できる関数
Excelで、指定した文字列だけを抽出表示する場合、「文字列を先頭(左)から抽出する」などの関数は「LEFT関数」や「RIGHT関数」がありますが、位置の指定ではなく、文字列の中にある、特定の文字だけを指定して抽出してできる関数は何でしょうか? たとえば「ラーメン」「うどん」「そば」いずれかを「含む」文字列が入っているセルの中から、「うどん」のセルだけを抽出して表示するという場合です。
- 締切済み
- Excel(エクセル)
- VBA エクセル 文字列の桁数指定 先頭に"0"
お世話になります。 セルに入力されたコードが、指定された桁数未満であった場合に、足りない桁数分を調整するため先頭に"0"ゼロを追加したいと思っております。 具体的には、10桁に指定されたコード番号を、間違えて6桁で入力した場合、先頭に"0000"を追加して10桁に調整したいのです。 (1)誤:54321Q ↓調整 (2)正:000054321Q 入力したら瞬時に修正をさせたいので、WorksheetにChengeEventを利用して書こうと思っているのですが、下記のとおり入力された桁数が1~9桁であった場合のそれぞれの指定を書くことしか思いつかなくて。 もう少し、Simpleな書き方はないものでしょうか? ~前略~ s = Cells(Target.Row, Target.Column).Value If s = "" Then Exit Sub End If i = Len(s) If i > 10 Then MsgBox "顧客番号(ICRIS#)は10桁です。" Exit Sub ElseIf i = 1 Then Cells(Target.Row, Target.Column).Value = "000000000" & s exitsub ElseIf i = 2 Then Cells(Target.Row, Target.Column).Value = "00000000" & s exitsub ~省略~ よろしくご指導くださいませ。
- ベストアンサー
- その他MS Office製品
- 文字列を指定桁数で分割して配列に入れたい。
文字列を指定桁数で分割して配列に入れたい。 Splitは指定した文字毎に分割して配列に入れてくれますが、 これを指定した桁数で区切って配列に入れたいのですが、 どうすればいいでしょうか? 環境はVisual Studio 2005でVBを使っています。
- 締切済み
- Visual Basic
- エクセル2003で数値を文字列に
Windowsのエクセル2003です。 すでに入力されている文字列13桁以上を 文字列に変換できないでしょうか? 入力していくうちに先頭に0が必要な場合も出てきて 困っています。桁数はまちまちなので書式設定でも出来そうにありません。VALUEやTEXTもうまくいきません。 書式で文字列にしても文字化けしてしまいます。 何かいい方法はございませんか?
- 締切済み
- オフィス系ソフト
- 特定文字列の抽出
VB6の質問です。 桁数、データが不定の文字列中から特定文字を抽出したいのでが、方法を教えていただけないでしょうか? 抽出したいデータの桁数が毎回不定でMid, Left, Right関数が使用できません。 Dim Buffer As String Buffer = "A12345...B678910.TRAGET..C" '桁数、データが不定の文字列がBufferに入ります。 例えば、変数Bufferから、桁数を考慮しないで"TARGET"の文字列を抽出したのです。 InStr関数で、位置を特定して、Mid関数などで抽出するれば、良いと思うのですが これをどんな桁数のときも対応できるようにルーチン化にできないでしょうか?
- ベストアンサー
- Visual Basic
- Excelの数字の文字列入力で
Excel2003です。 セルに "651,652,653" のような3ケタ分の数字とカンマの文字列を入力しようとすると 651652653 という数値にみなされてしまいます。 入力するときに、文字列の先頭に ’ を付けると文字列に みなしてもらえるのですが、つい忘れてしまい面倒です。 セルに指定などで設定する方法は何かありますでしょうか。 よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- Excelにて任意の位置の文字列を抽出したい
Excelにて任意の位置の文字列を抽出したい セルA1に、あたい1(837,1077,132) セルA2に、あたい2(657,100,32) セルA3に、あたい3(20,10000,888) のような値が入っています。 ここから、132、32、888を取り出したいのですが、どのような式を入れたら良いでしょうか? Right関数だと上記のように桁数が2桁と3桁と混在している場合に抽出できませんでした。
- ベストアンサー
- その他MS Office製品
- 文字列
・文字列をキーボードから入力する関数を作成する。 書式:char *StrInp(char *pDefStr, int nLen); 引数:char *pDefStf; 初期文字列 int nLen; 入力可能文字数(1~79) 戻り値:正常ならば、入力した文字列の先頭ポインタ、エラー時はNULL。 処理:pDefStrに与えた文字列を初期値とする文字入力を行う。 nLenで指定した文字数まで入力可能とし、その範囲は1~79 までする。入力時の初期カーソル位置は与えた文字列の最後 になります。初期文字列が必要ない場合はヌル文字を与えます。 初期文字列を与えられた場合は、その文字列も更新可能とする。 ・入力の終了は「リターン」キーとする。 ・「BS」キーを押すと、カーソルの1文字前の文字前の文字を 消去する。 という、問いです。難しくてわかりません。どなたかたすけてください。
- ベストアンサー
- C・C++・C#
- ORACLEでNCHAR/CHARの違い
ORACLEでNCHAR/CHARの違いについて教えて下さい。 文字列の記述に以下の2つの書きかたがありますが、 1.NCHAR(40) 2.CHAR(40 CHAR) これらにはどのような違いがあり、どう使い分けると良いでしょうか? よろしくお願い致します。 以上
- ベストアンサー
- Oracle
お礼
なるほど!ようやく分かりました! 俺って最悪に頭わるいっすね。 ありがとうございました。