SQLで年度を出そうと思ったときにどうやるんだ ろう、って思ったら、凄いシンプルでした。 select to_char(add_months(sysdate,-3),'YYYY') as nendo from dual 確かに3カ月引けば、そのまま年度になる。 スッキリわかる SQL 入門 ドリル215問付き! (スッキリシリーズ) ...
もっと読む
タグ:oracle
oracleでソート後で出力行数を絞る
今までは副問い合わせしていましたが、12cから こんなことが出来るらしい。 select * from table order by data asc fetch first 10 rows only これで、dataの順番に並べた後、上位10件の み表示できる ...
もっと読む
oracleでカラム(列)の追加、変更、削除
oracleでカラム追加、変更、削除。 ちょいちょい忘れるのでメモ 追加:alter table {テーブル名} add ({定義}) 変更:alter table {テーブル名} modify ({定義}) 削除:alter table {テーブル名} drop ({カラム名}) ...
もっと読む
oracleで近い文字列を探す
編集距離をoracleでチェック=UTL_MATCH. EDIT_DISTANCE_SIMILARITY 文字列の名寄せをするときに「相互の文字列が どれくらい似ているか」を表すための方法が用 意されています。 Levenshtein距離、Jaro-Winkler距離というロ ジックらしいのですが、その辺は割愛しまし て。 ...
もっと読む
sqlplusの出力をhtmlファイル型にする
sqlplus から出力したデータをテキスト形式では なく、html形式に直接変換するものを見つけま した。 echo -e "$SQL" | sqlplus -S -M "HTML ON" 出力がテーブル型のhtmlになる。 色は微妙だけど、オプションで変えられそう。 表示オンリー管理画面を簡単に作るのに適して ...
もっと読む
よく知らなかったCLOB型
よく知らなかったCLOB型。データいっぱい入る らしい、くらいしか知らなかったんだけど、改 めて調べてみた。 大きな文字列を扱いたくて、CLOB型を使ってみ たら、以下のような挙動をした。 バイト数未設定で作ると、自動で4000byteと定 義される。 入れてみると更に入る( ...
もっと読む
oracleでnot条件でnullが入ってるときの挙動
oracle でnot演算子を使っていたら、想像してい た挙動にならなかった。 調べてみたら、nullが入っているデータを条件で 絞り込んでnotかけた場合、想像していた挙動に ならない形になる。 nullが入っていたら、絞り込もうが、notしよう がtrueにならないで、unknownになる。 ...
もっと読む
oracleのSQLで次の指定曜日
oracleでSQLで「次の水曜日」とかやるのどうや るんだろう、と思ったら、 そのまんまなコマンドがありました。 next_day(sysdate,4) とかやると、今日の日付から次の水曜日、とな ります。 後ろの数字は起算日(日本なら日曜)=1とな りますが、英語表記でも行けるみた ...
もっと読む
oracleで半角片仮名を全角変換
SQLで、半角カタカナを全角に変換する必要が あったので調べた。 oracleのバージョンによって使えないこともある らしい。 utl_i18n.transliterate('カタカナ', 'hwkatakana_fwkatakana') ...
もっと読む
oracleでupdateでora-01779
updateのSQLをちょっと修正しただけで、ORA-01779が出るようになりました。 エラー内容 ORA-01779: キー保存されていない表にマップする列は変更できません。 主キーの問題でもありますが、どうもSQLがview 扱いになってエラーになっている模様。 色々試したがダメで、MERG ...
もっと読む