社内研修の練習問題での失敗からCOUNT関数の使い方を復習しようと思います。 COUNT関数 Oracle SQLの'COUNT関数'には3つの書式があります。 1.COUNT(*) SELECT文の基準を満たす全ての表を戻します。
【Oracle】UPDATE,INSERT,DELETE文の高速化 この記事でわかる・できること OracleでUPDATE,INSERT,DELETE文を高速化する方法 この記事の対象者 OracleでSQLを書く人全般 動作環境・使用するツールや言語 Windows 10 Pro 22H2 Oracle 12cR2 Enterprise Edition はじめに UPDATE,DELETE,およびINSERT INTO 【テーブル名】 SELECT ~では操作対象のレコードを特定してから更新を行います。 操作対象のレコードを特定するところは基本的に前回のSELECT文と変わらないのでそちらを参照してください。 共通 ループ処理をできるだけ避ける よくあるのが複数レコードを更新するために「Oracleへの接続・SQLで1レコード更新・切断」の一連の処理をループで繰り返し実行しているケース
【Oracle】SELECT文の高速化 この記事でわかる・できること OracleでSELECT文を高速化する方法 この記事の対象者 OracleでSQLを書く人全般 動作環境・使用するツールや言語 Windows 10 Pro 22H2 Oracle 12cR2 Enterprise Edition 実行計画 まず高速化したい任意のSQLの実行計画を確認します。 SET SERVEROUTPUT OFF SELECT employee_id, last_name, first_name, department_name FROM employees e, departments d WHERE e.department_id = d.department_id AND last_name LIKE 'T%' ORDER BY last_name; SELECT * FROM TABLE(
PL/SQL の ネイティブ・コンパイル(PLSQL_CODE_TYPE=NATIVE) でループ処理を高速化してみる。(Oracle Database)oracleOracleDatabase Oracle Database の PL/SQL には ネイティブ・コンパイル という機能があり、計算集中型のプロシージャーを高速化できます。 計算集中型とは DML(SELECT, INSERT, UPDATE, DELETE等)以外のロジック部分、例えばループ処理等で時間が掛かるプログラムの事を指します。 この記事では PL/SQL の ネイティブ・コンパイル でループ処理を高速化してみますやで。 彡(゚)(゚) 1. 参考マニュアル マニュアルの記述は以下の通りです。 12.10 システム固有の実行のためのPL/SQLユニットのコンパイル https://docs.oracle.com/cd
悪の帝国 Oracle が Java を有償化し重税を課そうとしたその時、正義の勇者 Amazon が立ち上がり新しい Java 実装 Corretto を無償で広めて救ったのだ! ……という情弱が好きそうなデマがあるんだが、こんな陳腐なシナリオに喜んでいるようではインチキなテック系 YouTuber に食い物にされてしまうぞ☆ Oracle レジスタンスはいた。彼らは Oracle の中に潜んでいたんだ。 赤字に苦しむ Sun時は2005年に遡る。 Java を開発した 米 Sun Microsystems は赤字にあえいでいた。 2004年に Java 5 (目玉機能はジェネリクス) がリリースされてしばらくの頃だ。 この頃、ひとつのオープンソースプロジェクトが立ち上がる。名を Apache Harmony という。 開発は2005年5月に開始され、2006年10月には Apache
オラクルは、同社が提供している企業向けのJavaディストリビューションであるOracle JDKのライセンスを変更し、無料で本番環境などでの利用を可能にしました。 同社が9月14日付で公開したブログ「Introducing the Free Java License 」で、次のように説明しています(関連するプレスリリース「Oracle Releases Java 17」)。 Oracle JDKを無料で提供し、四半期ごとのセキュリティアップデートも提供する。 新ライセンス「Oracle No-Fee Terms and Conditions (NFTC)」は、商用利用や本番環境での利用を含むすべてのユーザーに対して無料での利用を許可する。 Oracle JDK 17から、この無料のリリースとアップデートの提供を開始する。これは次の長期サポート(LTS:Long Term Support)が
Oracleクライアントのインストールって手間ですよね。 クライアントをインストールするってことは、サーバーがあるわけで、クライアントが複数台あるとしたら導入作業にコストがかかります。 Javaの場合は、SQL Developerのようにjdbcを使用すればクライアントのインストールは不要です。 では.Netではどうでしょう。今あるクライアントレスでの接続方法をまとめておきます。 System.Data.OracleClient 1つ目はSystem.Data.OracleClientを使う方法。 .Net Framework4からは非推奨となり、将来のバージョンでは削除される予定との内容が公式で出ている以上、遊び以外での使用は控えたほうが良いでしょう。 参考:MSDN:OracleClient dotConnect for Oracle 2つ目はdotConnect for Oracle
※1: 普段のビューでは使えないコマンドはマテビューでも使えないが それ以外であれば全て使える。 一般的なDLL、DMLは普通に流せる。試す機会がなかったがDCLも可能であろう。 マテビューの作成時にはいろいろ制約があるのでそこらへんは公式ドキュメントへ。 ただのビューであればSELECT結果とそう変わらないところを、マテビューにしておくと普通の表と同等の使い方ができる。 処理の流れ これを毎日一回自動で走らせるジョブを作るというのが私の仕事だった。 Javaバッチで一日一回呼ばれる ↓ リフレッシュをかける すること自体としてはこれで終わりです。 前後に呼び水・発火剤となるジョブがあるわけでもないので非常にシンプルでした。 いざ着手 要件定義から携わったのですが、制作にこぎつけるまで長かったですね。 もう一つ、メールを送信するジョブも担当だったのですがこちらも難敵で遅々として進みませんで
なぜやるのか Oracleのストアドプロシージャなどでビジネスロジック記述し、画面側などは.netで記述されているプロジェクト構成は多くあると思います。 ただここで問題なのは.netプロジェクトからODP.NETなどを利用して、Oracleストアドプロシージャを呼び出すときにデバッグするには、以下の手順でやる必要があり、非常に《面倒くさい》という点でした。 1.VisualStudioのデバッグでストアドプロシージャに渡すパラメータを探る 2.SQLDeveloperなどのツールを利用してデバッグする いちいちツールを切り替えずにVisualStudioでシームレスにデバッグしたい!というのが発端です。 環境 Windows7 Professional ServicePack1 VisualStudio 2013 Version 12.0.21005.1 REL 試していないがおそらくVi
PACKAGEの書き方と実行の仕方をまとめる (ついでに、はてなに目次が手軽に作成できるようになってたので試しに使ってみる) 1.パッケージとは 2.パッケージ作成 3.適当に作ってみる 4.実行 5.参考URL 1.パッケージとは FunctionやProcedureをひとまとめにしたもの 大規模な開発だとFunctionやProcedureが散乱するので Packageを作ってまとめておいた方がいい。 PL/SQLのパッケージを使用するためには、「仕様部」と「本体部」を作成する必要がある ・仕様部 パッケージの本体部に含まれるファンクションと プロシージャ名の名前と引数戻り値を定義したもの。 ここに書いてないと怒られる。 ・本体部 パッケージに含まれるファンクションとプロシージャの処理を記述していく。 またパッケージ内でどこからでもアクセスできるグローバル変数を記述できる。 ちなみに、
BLOBの読み取り select COL_ID , sys.dbms_lob.substr(COL_DATA, 16, 1) as COL_DATA from TABLE1; 実行すると↓になります。 ポイントは「SYS.DBMS_LOB.SUBSTR関数」で文字列に変換するというところ。 BLOBの書き込み まずINSERT。 hextoraw()関数を使用し文字列⇒バイナリにすれば登録できます。 insert into TABLE1 ( COL_ID , COL_DATA ) values ( 1 , hextoraw('000102030405060708090A0B0C0D0E0F') } UPDATEも同様です。 update TABLE1 set COL_DATA = hextoraw('000102030405060708090A0B0C0D0E0F') where COL_
Oracleは何をするにしても権限が必要です。権限がないとテーブルも作れない、データも登録できません。 しかし、この権限、非常に数が多く管理が大変です。そこでこの権限をセットにする機能があります。 権限の詰め合わせセット、それが「ロール」です。 例えば、「INSERT権限」「UPDATE権限」「DELETE権限」を1つのロールにまとめておけば、これから先の権限の管理が楽になります。 ロールの作成 ではロールを作成してみましょう。ロールの作成は「CREATE ROLL」で行います。 -- ROLE1を作成する CREATE ROLE ROLE1; これで「ROLE1」というロールができました。 ロールに権限付与 でもロールはまだ空っぽの状態です。このロールに権限を付与します。 -- ROLE1にTABLE_Aに対するINSERT,UPDATE,DELETE権限を付与する GRANT INSE
テーブル名などのオブジェクト確認SQL 実際には実行して確かめていないけど、こんな感じのSQLで対象オブジェクトが確認できると思います。 ・アクセスできるオブジェクトをすべて示す SELECT OWNER, OBJECT_NAME, OBJECT_TYPE, CREATED, LAST_DDL_TIME, STATUS FROM DBA_OBJECTS WHERE OWNER = 'スキーマ名' AND OBJECT_NAME like 'テーブル名' ; ・テーブル名 SELECT OWNER, TABLE_NAME, TABLESPACE_NAME, STATUS, LAST_ANALYZED FROM DBA_TABLES WHERE OWNER = 'スキーマ名' AND TABLE_NAME like 'テーブル名' ORDER BY OWNER, TABLE_NAME ; ・テ
バイナリデータ型 BLOB・BFILE・RAW・LONG RAW Oracleのバイナリデータ型は BLOB・BFILE・RAW・LONG RAWがあります。 それぞれどのような違いがあるのか解説します。(Oracle12c) RAW RAWはバイナリデータを扱う可変長のデータ型です。 MAX_STRING_SIZE = EXTENDEDの場合の場合、最大32,767バイト。MAX_STRING_SIZE = STANDARDの場合、最大2,000バイト。 LONG RAW LONG LAWは図形、音声、文書、またはバイナリ・データなどを扱う可変長のデータ型です。 古い型であるため、BLOB型を使うことが推奨されます。 最大2GB。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く