お世話になります。

AテーブルにBというフィールドがあります。
(Bはvarchar型で、先頭1文字は必ず大文字)

このBすべてのデータの先頭1文字目を「○」という
文字に置き換えて更新するためのSQL文を教えていただけますでしょうか。

よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

以下のようなSQLで可能です。



SQL> select * from a;
B
----------
AAA
BBB
CCCCC
lskf;;;
ddddd

SQL> Update a set b = '○' || substr(b,2,length(b));

SQL> select * from a;

B
----------
○AA
○BB
○CCCC
○skf;;;
○dddd
-----

SQLの意味は以下となります。

'○'    -- 置き換える文字列
||     --文字列連結
substr(b, --bを切り取る
2,     --2行目から
length(b)  --文字列の文字列長。
)

ちなみに関数は以下の特長があるので注意しましょう。

length '文字数基準
substr '文字数基準

lengthb 'バイト数基準
substrb 'バイト数基準
    • good
    • 0
この回答へのお礼

上記のSQL文にて、要望どおりの処理をすることができました。
ありがとうございました。

お礼日時:2009/05/13 16:50

このQ&Aに関連する人気のQ&A

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

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q「仲良しであること」を表す漢字1文字

タイトル通り、「仲良しであること」を1文字で表せる漢字を探しています。この場合の「仲良し」は男女間なのですが、「恋人同士として仲良し」なのではなく「友達として、チームとして仲良し」を意味します。ちなみにこの漢字1文字は、オリジナルTシャツのデザインにする予定です。

自分なりに考えてみると「和」くらいしか思いつかないのですが、それではありきたりなのでもう少しひねった漢字にしたいと思っています。他に「懇ろ」も思いつきましたが(「ろ」は入れません)、これだと「友達として仲良し」ではなくなってしまうなぁ、と思いました。

何かいい漢字がありましたら、あるいは意味から漢字を調べられるようなサイトがありましたら、ぜひ教えてください。よろしくお願いします。

Aベストアンサー

・藹(和気藹々)

・欒(団欒)

・間を○で囲って「仲間」をイメージ

・良を○で囲って「仲が良い」をイメージ

QSQL*Plus内でPL/SQL、SQLを実行するシェルスクリプトを書

SQL*Plus内でPL/SQL、SQLを実行するシェルスクリプトを書いています。

イメージ
sqlplus scott/tiger << EOF
  declare
    aaa number;
  begin
    -- *1
    select col1 into aaa from test1;
  end;
  /

  -- *2
  define a=1
  define b=1
  @test.sql
EOF


ここで*1にて例えば複数行が返ってくるなどのエラーが
発生した場合、*2以降のSQLを実行せずにSQL*Plusから抜けたいのですが
どのようにすればよいかわかりますでしょうか。

whenever sqlerror exit 255

などはPL/SQL内の論理エラーはハンドリングしてくれないようです。

よろしくお願いします。

それかdefineや@マーク指定によるsqlファイルの取り込みを
PL/SQLの中で実行できる方法を教えていただく方法でも
当方が実施したいことはできるのでそれでもかまいません。

Aベストアンサー

SQLPLUSで投入したPL/SQL無名ブロック内でのエラーでも、「whenever sqlerror ~」で、
キャッチできますよ。少なくともWindows版SQLPUSは、そういう動作です。
発生源が、SQL文であっても、PL/SQL無名ブロックでも、ORA-nnnnnのエラーを拾わないと
「whenever sqlerror ~」の意味が無いですからね。

Q漢字3文字の名前

もうすぐ女の子を出産予定です。
漢字3文字の名前を考え中ですが、3文字の名前って、書くときに長すぎたりバランスが取りにくかったりするものでしょうか。
ちなみに苗字は漢字2文字です。
私自身は漢字2文字の名前なので良くわからなくて・・・。
ご自身のお名前が漢字3文字の方、お子さんのお名前が漢字3文字の方、よければコメントをお願いします♪

Aベストアンサー

私自身が三文字です。

苗字や、三つの漢字の画数にもよりますが、
一般的に三文字の漢字で特に不都合を感じたことはありません。
バランスもとりにくいと思ったことはないです。

ただ子供の頃から、もし将来結婚して苗字が変わるなら、
読みが三文字で漢字も三文字(例えば佐々木さんとか)の人とは
結婚したくないな~と、思っていました。苗字も名前もすべて一文字
ずつ書くのは、何となくですが、当て字というか、
ヨロシクを夜露四苦と書くようなイメージがあって・・・
(完全に主観的な感想です^^;)

以外に便利だと思うのは、たくさんの名前の中から自分の
名前を探さなければならないような場面(学生時代等はよく
ありました。名簿とか。)で、三文字の名前って、
すごく探しやすくて良かったです(笑)。
二文字の子が多い中で、三文字が並ぶとぱっと目が行きますから。

QSQL*Loader 別フィールドのデータを編集

SQL*LoaderでCSVをインポートする際に、
次のようなCSVデータがあるとします。

DENPYO_NO | SALES_QTY | PRICE 

1001-01-0001     1      2000
1001-01-0002     2      4000

このデータのDENPYO_NOフィールドの左4桁を取得して別のフィールドにインポートすることは
可能でしょうか?
説明がわかりにくいと思いますが、テーブルに取り込んだ時に以下のようにしたいです。

SECTION | DENPYO_NO | SALES_QTY | PRICE
1001     1001-01-0001     1      2000
1001     1001-01-0002     2      4000

要は一つのCSVフィールドを使用して、複数のテーブルフィールドを更新可能か?
ということです。また、そのときの制御ファイルのフィールド項目の定義はどのように記述したらよいのでしょうか?
よろしくお願いします。

Aベストアンサー

可能です。
フィールドリストを
(
DENPYO_NO,
SALES_QTY,
PRICE,
SECTION "substr(:DENPYO_NO,1,4)"
)
このように定義すればいいです。

Qこの文字(アート・デザイン)の名称を教えてください。

5年ほど前、軽井沢のプリンスショッピングプラザ(アウトレット)で学生風の方が露天商のような形で商売をしていました。商品は客の名前をデザインされたアートな文字で書いてくれるというものでした。情報が少なくて申し訳ないのですが、知っている方がおりましたら教えてください。
【その文字について】
・幅5cm程度のスポンジのようなものに原色系の顔料を染みこませて、虹のような色遣いで書く。
・基本的にはアルファベットであるが、漢字でも書いてくれるようだった。
・文字の一つ一つに植物や鳥が描かれている(熱帯系のデザインに見える)。
・1枚1000円ぐらいで書いてくれた。
・とてもおめでたい(幸運を呼ぶ)文字らしい。

参考になるサイト等ありましたらご紹介ください。よろしくお願いいたします。

Aベストアンサー

No.1の回答者です。

違かったですか…。他には知らないですね。すみません。

今回は、

>当時「花文字」以外の呼び名を聞いたような気がしているのですが・・・

の補足回答です。質問の回答ではないので、あしからず。

「花文字」という呼び名のほかには、
「花鳥文字」「吉祥花文字」「開運風水花文字」「花鳥書法」「虹書法」などあるようです。(種類が違うのかもしれませんが…)


そういえば、

>学生風の方が露天商のような形で商売をしていました

ということなのですが、
その学生風の人のオリジナルという可能性もあるのでは?とも思ったんですが。


最後に、ほかに「花文字」に関するサイトを見つけたので紹介しておきます。
もはや関係のないものなので、参考という程度に。

http://www.asia-jps.com/hana01.html

http://kotobukimiyuki.at.infoseek.co.jp/miyukiss/hanamoji.jpg

http://www.d-word.jp/pdt_related1/

http://www.giwado.com/order/kachomoji.html

No.1の回答者です。

違かったですか…。他には知らないですね。すみません。

今回は、

>当時「花文字」以外の呼び名を聞いたような気がしているのですが・・・

の補足回答です。質問の回答ではないので、あしからず。

「花文字」という呼び名のほかには、
「花鳥文字」「吉祥花文字」「開運風水花文字」「花鳥書法」「虹書法」などあるようです。(種類が違うのかもしれませんが…)


そういえば、

>学生風の方が露天商のような形で商売をしていました

ということなのですが、
その学...続きを読む

QVARCHAR2とNUMBERで事足りる?

VARCHAR2とNUMBERだけのフィールド型で開発している会社をたまに見ますが、これは何を意図しているのでしょうか?
DATE型やCHARを使わずにしている理由が知りたいです。

オラクルの達人にメリットデメリットを聞きたいです。

Aベストアンサー

Oracle無印ですが・・・・

通常、事足りると思います。
たまに、BLOBやCLOBが必要な程度だと思います。

日付だからと言って安易にDATEを使うのは危険です。
(手書きの)過去の資料を格納する場合、実際には存在しない日付で
記録されている場合があり、そのデータが入れられなくなります。
日付はVARCHAR2(もしくはCHAR)で設計するのが無難です。
更新日付のように、今後利用するもので、システムが生成するような
ものであればDATEでもよいでしょうが。

基本的にCHARを使うメリットはないです。
CHARとVARCHAR2は動きが若干違うので、半端な知識で混在させるなら
VARCHAR2に統一したほうがよいです。結合できない、文字列比較セマンティクス
で思うようにいかない、などで手間取る危険がありますので。

Q漢字の他に、漢字のように何万字もあるような複雑な文字ってあるんでしょう

漢字の他に、漢字のように何万字もあるような複雑な文字ってあるんでしょうか?

やっぱり、漢字が世界で最も文字数の多い文字なんでしょうか?

Aベストアンサー

 文字には大きく分けて二種類あります。音(意味がない)によるものと語によるものです。世界の文字を全部勉強した訳ではありませんが、文字組織からだいたいの見当はつきます。

(1)音をあらわすもの。
  音素文字、いわゆるアルファベットはその例。母音を表す文字と子音を表す文字で総数50以下。

  音節文字、日本語の仮名はその例。総数は多くても150以下

(2)語を表すもの。表語文字、漢字はその例。1994年の『中華字海』では、85,568字。日本の常用でも2,000字程度。

>>やっぱり、漢字が世界で最も文字数の多い文字なんでしょうか?

 多分そうだろうと思います。

http://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97

Qソート(大文字・小文字を区別しない方法)

Oracle10gとOracle9を利用しています。
SQL文でソートした結果を出力したいのですが、頭文字が大文字・小文字が混在しています。
ORDER BY句を使ってソートをすると、大文字でソート、小文字でソート という順番で並ぶと思いますが、大文字・小文字を区別せずにソートさせたいと考えています。
大文字・小文字を区別せずにソートさせる方法はありますか?

-------------
TABLE1
-------------
IDNAME
-------------
001Book
002bar
003boy
004Byte
-------------

SELECT NAME FROM TABLE1 ORDER BY NAME;
↓実行結果
-------------
Book
Byte
bar
boy
-------------


↓出力した並び順
-------------
bar
Book
boy
Byte
-------------


※「ALTER SESSION ST NLS_SORT=BINARY_CI」としてからソートすればOKという
 情報がネットで見つかりましたが、Webアプリの中で実行させたいため、設定
 は変えずに行いたいと思っています。可能ですか?


よろしくお願いいたします。

Oracle10gとOracle9を利用しています。
SQL文でソートした結果を出力したいのですが、頭文字が大文字・小文字が混在しています。
ORDER BY句を使ってソートをすると、大文字でソート、小文字でソート という順番で並ぶと思いますが、大文字・小文字を区別せずにソートさせたいと考えています。
大文字・小文字を区別せずにソートさせる方法はありますか?

-------------
TABLE1
-------------
IDNAME
-------------
001Book
002bar
003boy
004Byte
-------------

SELECT NAME FROM TABLE1 ORD...続きを読む

Aベストアンサー

単に ORDER BY lower(NAME) で良いんじゃないですか?
http://www.shift-the-oracle.com/sql/functions/upper-lower-initcap.html

Qロゴや文字のデザイン。

漢字やひらがな、英語などデザイン風に少しデフォルメして書きたいのですがどのようにかけばかっこよく見えるでしょうか。
よく、路上の壁面に書いてあるような文字の書き方(特徴)などわかるかたおしえてください。
文字がなんて書いてあるかが少しわかんないくらいにしたいのですが。
ロゴのようなものでも良いです。
最近の10代20代くらいの人が好きそうな感じで…
よろしくおねがいします。

Aベストアンサー

グラフィティ(らくがきと言う意味で)と呼ばれる文字ですね。かっこ良く、なんて書いてあるかがわかんないくらいの文字が書けるように、みんなひたすら紙に書いて練習しているのだと思います。

当たり前ですが、シャッターやコンクリの塀、人の迷惑になる場所に書くのは犯罪ですので、そういった場所に書くのは絶対にやめましょう。

こんなところとかご参考に
http://www.11-d.nu/

以下のサイトからは、PLAY→好きな英字入力で作れます。

参考URL:http://www.mindgem.nu/graffiti.html

Q大文字/小文字の区別しないで検索したい場合

データベース:ORACLE9i

いつもお世話になっています♪

いきなり質問ですが、
例えばこういうデータがテーブルに
入っているとします。

ID  NAME
-----------
1 AAA1
2 BBB2
3 CCC3
-----------

そこで下記のSQLを実行するとBBB2はヒットしません。
select * from test_tbl where name like '%b%';

大文字/小文字を区別しないで検索する方法はないでしょうか?

よろしくお願いします♪

Aベストアンサー

大文字なり小文字に統一して比較すればよいので..

select * from test_tbl where LOWER(name) like LOWER('%b%');

とか

select * from test_tbl where UPPER(name) like UPPER('%b%');

で良いかと思います。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング