タグ付きの投稿'オラクル'

Oracleの挿入は、データを判断する

2010年7月16日

Oracleデータベースのデータを決定する必要がある場合によっては、挿入何を、いつ。 たとえば、一人一人だけで、毎日1つを書くことができます。
挿入するときには、まず裁判官、日、チェックしないようにする必要があります人の運用記録。
最初にすべき

  1. xxxから選択数(*)

について。
この日は、文言の場合は、最初に選択することはできません種類をビットをチェック
もともと

  1. 挿入
  2. フォームに(formid)の値(111)

  1. 挿入
  2. ない(フォームから1を選択して存在するときに(ここでformid = 111))を
  3. フォームに(formid)111、デュアルから選択

したがって、データベースがformid = 111のレコードを挿入操作が行われていないしていたという

人気:2%

Oracleのに置き換えるの実装マージでmysql

2009年9月2日

mysqlのDML文を挿入するようなには、置換を挿入一意のインデックスまたは主キーの前にテーブルをチェックします。 それが存在する場合、操作を更新します。
多くのアプリケーションで、これは非常に一般的な操作です。 これは、に置き換えると裁判官が更新または挿入の単語を実行した後に変更した後、あなたは非常に便利ですが選択できます。

にマージoracle9後に(もし)として、彼らは、以下のSQLデモを同様の機能を果たすことができる

  1. マージ セントQQ
  2. 使用して   (選択 ' '2022' ' cname ' company_no、'cnameに' company_name から セントQQ 場所 2 ) ROWNUMの <2) b
  3.   . company_no = b . company_no ) (Aの Company_no = bをCompany_no)
  4. のWHEN   マッチング 次に
  5.   更新   セット company_name = a . company_name || ' a ' Åの company_nameは = Åの company_name | |'
  6. のWHEN   しない マッチング 次に
  7.   のINSERT
  8.     . company_no , a . company_name ) について(A. Company_noは、a. Company_name)
  9.   価値
  10.     . company_no , b . company_name ) ; (Bの Company_noは、b. Company_name);

人気:26%

mysqlの内部Oracleのデコード

2009年8月26日

が定義デコードオラクル関数は、は、需要が1,2,3、b、cの最後に、デフォルトの値に基づいて変換することができます。

この機能を持っていないようですmysqlの。 ただし、他の関数は、同様の結果を達成するために使用することができます。

(式1、式2、式3)のIF
expr1がTRUEの(式1 <>; 0およびexpr1 <>; NULL)は、その後のIF()が返すexpr2を、それ以外の場合は、式3を返します。 IF()は数値または文字列値を返します。

Oracleの文言

セレクトデコード(ttype、1、''、2、'b'は、3、'c'は、'd')のからのタバ

で書くことができますmysqlの

セレクト場合(ttype = 1、''、場合(ttype = 2、'b'の場合(ttype = 3、'c'は、'd'のは)))
からのタバ

人気:28%

OracleのPL / SQLのIDカードは15関数の15に切り替える

2008年4月13日

IDカードは、しばしば職場での変換データの15〜18ビットから検出された、友人はそのような神託を、PL / SQLファンクション与えた。 テストは、問題は、代替を投稿しました。

作る または 置き換える 関数 idCardNum f_15to18(idCardNum VARCHAR2の) 戻り VARCHAR2の
結果 20 ) ; VARCHAR2の (20);
私は smallint型。
numは 0 ; smallint型:= 0;
sNum 2 ) ; VARCHAR2の (2);
コード 1 ) ; 文字 (1;
temp17 20 ) ; VARCHAR2の (20);
始める

場合 idCardNum ) = 18 長さ (idCardNum)= 18 または idCardNum ヌル 次に
upper ( idCardNum ) ; 結果:= 上部 (idCardNum);
ELSIFは idCardNum ) = 15 長さ (idCardNum)= 15 次に
substr ( idCardNum , 1 , 6 ) || ' 19 ' || substr ( idCardNum , 7 , 9 ) ; temp17:= substrは(idCardNum、1、6)| | '19'| |の substrは (idCardNum、7、9);
18 ; 私は:= 18;


1 私は> 1 ループ
num + mod ( power ( 2 , i - 1 ) , 11 ) * substr ( temp17 , 19 - i , 1 ) ; numは:= numは+ 19日 MOD(電源 (2、 - 1)、11)* substrは (temp17、 - 私は、1);
i - 1 ; 私は:=私は - 1;
終了 ループ;

mod ( num , 11 ) ; numは :=)のモッズ numを、11(;

num || '' ; sNum:= num個の |の| '';
場合 0 numが 0 次に
' 1 ' ; コード:= '1';
ELSIFは 1 numが = 1 次に
' 0 ' ; コード:= '0';
ELSIFは 2 numが = 2 次に
' X ' ; コード :='X'を;

( 12 - num ) || '' ; コード:=(12 - numが)| | '';
終了 場合はtrue。
temp17 || code ; 結果:= temp17 | | コード。

idCardNum ; 結果:= idCardNum;
終了 場合はtrue。
戻り 結果;
例外
他人 次に
put_line ( idCardNum ) ; DBMS_OUTPUTを。put_line(idCardNum);

終了 f_15to18;
/

人気:17%

Oracleの時刻の形式

2008年2月21日

プロフィール現在のタイムフォーマットのオラクル
nls_session_parametersから選択* whereパラメータ='付値を';
フォーマットの変更現在のセッション
セッションは、NLS_DATE_FORMAT ='はYYYY - MM - DDのHH24設定:交流:変更被験者';
窓は時刻の形式を変更し、デフォルトの日付書式などのクライアントのレジストリをします。HKEY_LOCAL_MACHINE ->ソフトウェア-> ORACLEの-> HOME0、保存、"新規" - >"文字列"、名前の変更"付値"(注引用文字)、大文字にすべきなど:をyyyy - mm - ddのhh24として割り当て:マイル:ssは、直接、必要Oracleを再起動することなく使用することができます。

人気:19%

Oracleのnullはソート値

2007年10月18日

データを日付の並べ替えフラッシュ順に並べ替え更新に必要なプログラムを書いていた。 オラクルは、VARCHAR2と電話番号の最大のテストとしてnull値を持っているようにも考えているように。

»詳細:オラクルのNULL値の並べ替え

人気:24%

oracelの表は、単純にメソッドのロックを解除

2007年9月25日

データベースの時には操作がロックされると、パフォーマンスがテーブルの上にいるときに応答がない操作。
次のようにロックを解除する方法があります。 繰り返し、次の3つのSQLを

select SQLの>を選択 sidの から lock vは $ ロック 場所 1 ; ブロック = 1;

SIDは
-------- -
20

select SQLの>を選択 serial # from v$session where sid=20; sidの、sid = 20シリアル 番号 からv $セッション;

SIDは     シリアル
-------- - ----------
20         2649

alter SQLの>は、変更 システム 殺す セッション ' ; '20、2649';

システム 変更されました。

いいえブロック= 1のみにsidの

select SQLの>を選択 sidの から lock vは $ ロック 場所 1 ; ブロック = 1;

なし 選択

wxxありがとうございます

もう1つのチェックSQLロック

選択 sid , lのは、一覧
username , sのユーザ名、
l . type , ' TM ' , ' TABLE   LOCK ' , ' TX ' , ' ROW   LOCK ' , NULL ) デコード(lの タイプ 、'TMの'、'テーブルロック'、'テキサス'、'ロック'、NULL) LOCK_LEVEL、
owner , Oの所有者、
object_name , Oをobject_nameの、
object_type , Oをobject_typeに、
terminal , sの端末、
machine , sのマシンで、
program , sのプログラムは、
osuser osuser
から session $ セッション v $ lock sは、 $ ロック dba_objects リットル、dba_objects
場所 sid = l . sid 秒のsid = lの 一覧
object_id = l . id1 Oの object_idを = lの ID1の
username sのユーザ名 しない ヌル

人気:16%

削除は、sqlのデータを複製する

2007年8月21日

複数のユーザのログテーブルは、主要な細胞電話の情報は、各ユーザーに自分の連絡先のグループを作成することができます。
データが大きい場合は、元のデータは、データ、、データの重複が発生するユーザーをグループに繰り返し電話番号内の入力できることを確認しなかった。
次のようにだから、一意のインデックスになりたい:

作る ユニークな インデックス inx_uniq_cellphone_onegroup アドレスリスト , groupid , operatorid ) ; (携帯電話、グループID、operatorid);

目的は、各グループ内の各ユーザーは、同じ携帯電話を持っていないことを保証することです。
ただし、エラーの設立は、データが重複していたので。
削除、重複データを次のSQLを使用して、ROWIDを削除するには繰り返しが最大に等しいされていません(行ID)を記録します。

削除する アドレスリスト
場所 行ID しない (選択 rowid1
から アドレスリスト
(選択 携帯電話、
、グループID
、operatorid
rowid ) 最大 (行ID) rowid1、
* ) (*)
から アドレスリスト
グループ によって groupid , operatorid ) 携帯電話、グループID、operatorid) b
場所 cellphone = b . cellphone Åの携帯電話= bを 携帯電話
groupid = b . groupid ÅのグループID = bを グループID
operatorid = b . operatorid Åの operatoridは= bをoperatorid
rowid = b . rowid1 ) Åの行ID = bをrowid1)

人気:19%

ヒント(Oracleの一般的な使用の)転載他

2007年4月15日

1 / * + ALL_ROWS * /
表示をブロックするコストベースの最適化方法の選択は、最高のスループット、リソースの消費を最小限に抑えます。
例:
BSEMPMSからのSELECT / * +すべて+ _ROWSは* / EMP_NO、EMP_NAM、DAT_INのWHERE EMP_NO ='スコット';
2 / * + FIRST一* /
表示をブロックするコストベースの最適化方法の選択は、最高の応答時間、リソース消費を最小限に抑えます。
例:
セレクト/ * +はBSEMPMSから/ EMP_NO、EMP_NAM、DAT_INのWHERE EMP_NO ='スコット'*をFIRST一;
3。/ * +は*を選択/
このデータは、辞書テーブルの統計情報へのアクセスがあれば、コストベースの最適化手法、最高のスループットを得る;
その場合、データは、辞書の表は、ルールベースの最適化手法を支出されるアクセスの統計情報を持っていない。
例:
SELECTは/ * +はBSEMPMSから/ EMP_NO、EMP_NAM、DAT_IN *を選択して場所EMP_NO ='スコット';

4 / * +ルール* /
表示をブロックするルールベースの最適化方法の選択。
例:
セレクト/ * +ルール* / EMP_NO、EMP_NAM、BSEMPMSからDAT_INのWHERE EMP_NO ='スコット';

5 / * +はフル(表)* /
テーブルを選択、グローバルスキャン方法。
例:
セレクト/ * +は(BSEMPMSから)* / EMP_NO、EMP_NAMのWHERE EMP_NO ='スコット'フル;

6 / * + ROWIDを(表)* /
お勧めは、指定されたテーブルの明確なデモのROWIDをご覧に基づいています。
例:
セレクト/ * BSEMPMSから/ * + ROWIDを(BSEMPMS)*のWHERE ROWIDを> ='AAAAAAAAAAAAAA'
とEMP_NO ='スコット';

7 / * +クラスターテクノロジー(表)* /
お勧めは、指定されたテーブルを明確に実証クラスタを選択し、アクセスメソッドをスキャン、クラスタ上でのみ効果的にオブジェクトを返します。
例:
セレクト/ * +クラスタ* / BSEMPMS.EMP_NO、BSEMPMS、BSDPTMSからDPT_NO
のWHERE DPT_NO ='TEC304'とBSEMPMS.DPT_NO = BSDPTMS.DPT_NO;

8 / * + INDEXへ(表のindex_nameの)* /
テーブルを選択しますインデックスがスキャンします。
例:
BSEMPMSのSELECT / * + INDEXへ(BSEMPMS SEX_INDEX)のUSE SEX_INDEXがFEWMALE BSEMPMSの*されるので/のWHERE性別='M'をから。

9 / * + INDEX一ASC(表index_nameの)* /
テーブルにインデックスを昇順その選択のスキャン方法。
例:
BSEMPMSのSELECT / * + INDEX一ASC(BSEMPMS PK_BSEMPMS)* /からのWHERE DPT_NO ='スコット';

10 / * + INDEX_COMBINEの* /
を選択して指定されたテーブルへのアクセスパスのビットマップ、INDEX_COMBINEは、ビットマップインデックス法の論理結合を選択するパラメータasインデックスをprovide notしないif。
例:
BSEMPMSからのSELECT / * + INDEX_COMBINE(BSEMPMS SAL_BMI HIREDATE_BMI)* / *
のWHERE SALの<5000000と入社日

11 / * + INDEX_JOIN(表index_nameの)* /
お勧めは、clearコマンドオプティマイザがアクセスパスとしてインデックスを使用します。
例:
セレクト/ * + INDEX_JOIN(BSEMPMS SAL_HMI HIREDATE_BMI)* /入社SAL便
BSEMPMSからのWHERE SALは<60000;

12 / * + INDEX_DESC(表index_nameの)* /
テーブルを選択しますが、スキャンの降順のインデックス。
例:
BSEMPMSのSELECT / * + INDEX_DESC(BSEMPMS PK_BSEMPMS)* /からのWHERE DPT_NO ='スコット';

13 / * + INDEX_FFS(表index_nameの)* /
指定されたテーブルインデックスの実装では、高速スキャンではなく、完全なテーブルスキャンアプローチフル。
例:
BSEMPMSからのSELECT / * + INDEX_FFS(BSEMPMS IN_EMPNAM)* / *のWHERE DPT_NO ='TEC305';

14 / * + ADD_EQUALテーブルINDEX_NAM1、INDEX_NAM2 ,...*/
いくつかの個別のインデックスの選択の実施のための提案の明確な計画が一緒にスキャンします。
例:
BSEMPMSからのSELECT / * + INDEX_FFS(BSEMPMS IN_DPTNO、IN_EMPNO、IN_SEX)* / *のWHERE EMP_NO ='スコット'とDPT_NO ='TDC306';

15 / * + USE_CONCATの* /
またはUNIONの組み合わせにWHERE条件すべてのクエリの背後にクエリします。
例:
BSEMPMSからのSELECT / * + USE_CONCATの* / *のWHERE DPT_NO ='TDC506'とセックス='M'のは;

16 / * + NO_EXPANDの* /
背後にあるORはどこにあるか、リストまたはクエリステートメントNO_EXPANDオプティマイザを防ぐためにはベースと拡張される。
例:
BSEMPMSからのSELECT / * + NO_EXPANDの* / *のWHERE DPT_NO ='TDC506'とセックス='M'のは;

17は/ * +は*をNOWRITE /
クエリは、クエリのブロック操作を書き換えに対して。

18は/ * +は*を書き換え/
あなたは、パラメータとして表示することができます。

19は/ *は、+()* TABLEをマージ/
それに応じて様々な問い合わせの合併を表示するようになる。
例:
セレクトは、/ * +(V)の* / AのEMP_NO、BのDPT_NO BSEMPMS(SELET DPT_NOからA EMP_NAMマージ
、AVGの(SAL)のDPT_NOによるBSEMPMSからAVG_SAL Bとしてグループ)はVのWHERE ÅのDPT_NO = VのDPT_NO
とA.サル> VのAVG_SAL;

20 / * + NO_MERGE(表)* /
もはやについては合併のビューをマージできます。
例:
セレクト/ * + NO_MERGE(V)の* / AのEMP_NOとA. EMP_NAM、BのDPT_NO(セレクトDPT_NO BSEMPMSから、DPT_NOによるBSEMPMSからAVG_SALのAS(SAL)のB群)はVのAVGのWHERE ÅのDPT_NO = VのDPT_NOとA.サル> VのAVG_SAL;

21は/ * + *を命じた/
FROM句のテーブルの順序は、この順序を命じたによると、オラクルへの接続。
例:
SELECTは/ * + table1から、*を/ A.COL1、B.COL2、C.COL3順序Table2のBは表3のC A.COL1 = B.COL1とB.COL1 = C.COL1;

22 / * + USE_NL(表)* /
指定された接続でネストされたテーブルは、行のソースに接続する内部テーブルとしてテーブルを指定します。
例:
SELECTは/ * +は)/ BSDPTMS.DPT_NO、BSEMPMS.EMP_NO、BSEMPMSから、BSDPTMS BSEMPMS.EMP_NAM *をUSE_NL(BSEMPMSを命じたのWHERE BSEMPMS.DPT_NO = BSDPTMS.DPT_NO;

23 / * + USE_MERGE(表)* /
指定されたソースは、他の行を持つテーブルへのリンク接続を介して並べ替えをマージします。
例:
セレクト/ * + USE_MERGEは(BSEMPMS、BSDPTMS)* BSEMPMSから/ * BSDPTMSのWHERE BSEMPMS.DPT_NO = BSDPTMS.DPT_NO;

24 / * + USE_HASH(表)* /
ハッシュリンクを介して他のラインに接続して指定したソーステーブル。
例:
セレクト/ * + USE_HASHは(BSEMPMS、BSDPTMS)* BSEMPMSから/ * BSDPTMSのWHERE BSEMPMS.DPT_NO = BSDPTMS.DPT_NO;

25 / * + DRIVING_SITE(表)* /
力と選択ORACLEのテーブルの場所別のクエリの実行。
例:
SELECTは/ * + DRIVING_SITEは(DEPTの)* BSEMPMSから/ * DEPTの@ BSDPTMSのWHERE BSEMPMS.DPT_NO = DEPT.DPT_NO;

26 / *は、+()* TABLEををリード/
テーブルの最初の順序と接続指定されたテーブル。

27 / * +キャッシュ(表)* /
フルテーブルスキャンをするとき、キャッシュテーブルは、少なくとも最近では最も最近の例の最後に使用されるバッファキャッシュLRUリストに配置ブロックを取得することが求められます:
セレクト/ * +は(BSEMPMS)フル(CAHE BSEMPMS)BSEMPMSから* / EMP_NAM;

28 / * + nocacheです(表)* /
フルテーブルスキャンをするとき、キャッシュテーブルは、少なくとも最近では最も最近の例の最後に使用されるバッファキャッシュLRUリストに配置ブロックを取得することが求められます:
セレクト/ * +は(BSEMPMS)フル(NOCAHE BSEMPMS)BSEMPMSから* / EMP_NAM;

29日に/ * +は*を追加/
直接テーブルの端に、より速く挿入されます。
挿入は、/ * +は、test1を選択* /にtest4から*を追加。

30は/ * +は*をNOAPPEND /
挿入生存のパラレルモードでステートメント停止中に定期的に挿入を開始します。
挿入は、/ * +は、test1を選択* /にtest4から*をnoappend;

人気:17%

オラクル8文字は、文字が混在並べ替え

2007年4月6日

次のように場合によっては、連絡先、またはアルファベット順の名前ランクでは、ブロックする必要があります:

ダウンロード: test.txtの
Jはオフィス企画財政マネージャの外側中心にサービスを提供
Lの研究センター
Mのクリニック
Pのトレーニングセンター
質問その他

ソリューション
»詳細:オラクル8文字、文字が混在並べ替え

人気:18%