タグ

oracleとsqlに関するnantanのブックマーク (9)

  • カーソル・ループ処理 - オラクル・Oracle PL/SQL 入門

    明示カーソルと暗黙カーソル カーソル(CURSOR) とは、主に問い合わせ(データ操作も含む)を行なうための情報を管理する作業領域をあらわすための「タグ」のようなものである。 このカーソルにユーザーが名前を付けているものを 明示カーソル と呼ぶ。 暗黙カーソル では Oracle によって用意されている名前の無い作業領域を使用している。 明示カーソルを使用するとカーソルの再利用や %ROWTYPE などを使用してメタデータ(定義情報)を PL/SQL 上などから容易にフェッチ(取り出し)することができる。 暗黙カーソルを使用した SELECT 文による FOR ループ カーソルを定義せずに FOR の制御リストに記述することでループ変数に結果レコードを代入する。 SELECT した結果セットが存在しない場合にはループ処理は発生しない。 SQLPlus の場合には実行の前に SET SERV

  • ORACLE/オラクルSQLリファレンス(SQLPLUS)

    スポンサード リンク 例1) 表「emp」のSELECT結果を、カンマ','区切りのCSVファイルを「c\tmp\emp.csv」に出力します。 SQL> set echo off SQL> set linesize 1000 SQL> set pagesize 0 SQL> set trimspool on SQL> set feedback off SQL> set colsep ',' SQL> spool c:\temp\emp.csv SQL> select * from emp; E01,D01,名字1  ,名前1  , 10 E02,D01,名字2  ,名前2  , 50 E03,D02,名字3  ,名前3  , 100 SQL> spool off

    nantan
    nantan 2009/11/27
    オプション、set pagesize 0
  • ORACLE/SQL*Plus - centromezzo wiki

    nantan
    nantan 2009/11/27
    カラム行を非表示、SQL*PLUSのオプション、set pagesize 0
  • 『[Oracle] ORA-01000エラーの回避方法』

    大量のデータを処理した場合などに ORA-01000 最大オープン・カーソル数を超えました。 というエラーが発生することがあります。 これは文字通り一度にオープンできるカーソルの最大数を超えたことを示すエラーです。 Oracleで同時にオープンできるカーソルの最大数は初期化パラメータOPEN_CURSORSで設定することができます。 では増やせばいいじゃないかと安易に考えてしまいがちですが、そう易々と解決できるものではありません。 OPEN_CURSORSの値を増やせば、確かに上記のエラーが発生する確率を減らすことはできますが、逆にリソースを多く消費するようになり、Oracleのパフォーマンスが全体的に低下してしまうからです。 そもそもカーソルというもの自体リソースを多く消費するものなので、大量に使用するというのはアプリケーションの仕組み的に好ましくありません。 ですから、上記のエラーを回

    『[Oracle] ORA-01000エラーの回避方法』
  • ORACLE/オラクルSQLリファレンス(WITH句)

    スポンサード リンク ORACLE9iから、WITH句がサポートされました。 WITH句で指定したSQLの結果は、VIEWの様にSQL内部から参照することができます。 これにより、インランインビュー、や、内部結合、外部結合を使った複雑なSQLを分かりやすく見せることが出来ます。 構文は、WITHキーワードの後に、副問合せSQL結果のVIEW名と、ASキーワードに続いて括弧内にSQLを指定します。 以下の例では、副問合せ結果の「view01」と表「table01」を内部結合しています。 with view01 as ( select column99 from table99 where column01 = '01' ) select view01.column99, table01.column77 from table01, view01 where table01.column99

    nantan
    nantan 2009/04/08
    WITH句で見やすく
  • bashからsqlplusへの引数渡しと戻り値取得 - Pumpkin Moonshine

    ・bashからsqlplusへ引数を渡して戻り値を取得します。 ・sqlplusの終了で「quit 文字列」としたらエラーになるので 中間ファイルを経由させました。 ・中間ファイル経由の方法はかなり無理やりな気がします。 もう少し良い方法が知りたいです。 #!/bin/sh # TMP_FILE="./hoge.tmp" # sqplus処理 function printSqlplus { ${ORACLE_HOME}/bin/sqlplus -s scott/tiger >>EOF < /dev/null SET HEADING OFF SET ECHO OFF SET FEEDBACK OFF SET PAGESIZE 0 SET TRIMSPOOL ON SET TERMOUT OFF SET LINESIZE 1000 SPOOL ${TMP_FILE}; SELECT 'Hell

  • ORACLE チューニング INDEXを有効に使う

    ~ ご挨拶 ~ ど~も~☆道先案内人の「ユースク・アンタダレヤ」です。 今回、自分の経験を元に簡単にORACLESQLのチューニングが行なえるよ~♪ 的な覚書を残したいと思います。 あくまで個人的な覚書な感じなので、間違ってる部分や直したけど早くならないなど、苦情が出るかもしれませんが あくまで自己責任でやってください。 おらは責任取りませんぞ!! では、説明していきたいと思いますので、最後までお付き合いくだされ☆ ☆ もくじ ☆ 0.ソート処理が発生するSQLをなるべく使わない 1.INDEXを有効に使う 2.結合に注意!! 3.その他 4.インポート・エクスポート 5.ちょっとしたSQL達!!でも忘れちゃう。。。 6.パーティショニング(表領域のパーティション化) 7.マテリアライズド・ビュー 8.各種確認コマンド 0.ソート処理が発生するSQLをなるべく使わない SQLを遅くする要

  • TOP n レコードの取得 - オラクル・Oracleをマスターするための基本と仕組み

    トップN分析、上位 n レコード、 n〜m レコードの取得 SELECT 文 にて条件を伴う上位の n レコードを取得したい場合には ROWNUM によるインラインビューを使用してネストした問い合わせをインライン化するか ROW_NUMBER 分析関数 を使用する。 FETCH FIRST / FETCH NEXT による TOP n 件抽出 SELECT NO FROM ROWNUM_TEST ORDER BY NO -- OFFSET 0 ROW / OFFSET 0 ROWS FETCH FIRST 5 ROWS ONLY ; "FETCH FIRST ROW" と行数を省略した場合には最初の 1 行が抽出される。 ※ FETCH FIRST n ROWs の n に 0以下が設定された場合には 1件も抽出されない。 ROW_NUMBER 分析関数による TOP n 件抽出 ROW_

  • マルチバイト・キャラクタセット - Oracle/オラクルをマスターするための基本と仕組み

    Oracle で日語を取り扱うときの文字コード オラクルの CHAR および VARCHAR2 などに分類される標準文字列型で使用される文字コードを Database Characterset と呼び、 NCHAR および NVARCHAR2 などの各国語文字列型で使用される文字コードを National Characterset と呼ぶ。 マルチバイト・キャラクタセット(ダブルバイト・キャラクタセット) 日を含むアジア圏などにおいて使用されるキャラクタセットは、文字種が多く 1 バイトでは表現不可能なため 2バイト以上で表現されている。 一般的に全角文字=マルチバイト・キャラクタと話していることも多いが厳密には間違いとなる。 (それで誤解した(された)ことは無く、問題になったこともないので大丈夫かと思う) 以下は日語をサポートするキャラクタセットの代表的なもの 英数字、スペース,記

  • 1