PL/SQL

【PL/SQL】Invoker RightsとDefiner Rightsの違いと使い分け

PL/SQLのストアドプロシージャやファンクションは、デフォルトでは「作成者の権限」で実行されます。これをDefiner Rights(定義者権限)と呼びます。一方でInvoker Rights(呼び出し者権限)を指定すると、実行時に呼び出...
PL/SQL

【PL/SQL】DBMS_APPLICATION_INFOで処理状況を監視に出力する方法

DBMS_APPLICATION_INFOは、実行中のPL/SQLやアプリケーション処理の「いま何をやっているか」をデータベース側へ明示するための標準パッケージです。V$SESSIONやAWR、ASHの画面にモジュール名やアクション名、長時...
PL/SQL

【PL/SQL】DBMS_PROFILERでコード実行時間を計測する方法

DBMS_PROFILERはPL/SQLコードの行単位で実行回数や経過時間を計測し、どこが遅いのかを数値で可視化できる標準パッケージです。体感やログだけでは見えないボトルネックを特定し、最小の修正で最大の効果を狙うための強力な手段になります...
PL/SQL

【PL/SQL】コレクション(配列・ネスト表)の基本と活用例

PL/SQLには配列やリストを表現できる「コレクション」という仕組みがあり、大量データを効率的に扱うために活用されます。代表的なコレクションには「連想配列」「ネスト表」「VARRAY」の3種類があり、それぞれ特徴と用途が異なります。ここでは...
PL/SQL

【PL/SQL】DBMS_METADATAでスキーマ定義を取得する方法

Oracleでテーブルやビュー、インデックス、シーケンスなどのオブジェクト定義を確認したいとき、DBMS_METADATAパッケージを使うと簡単にDDLを取得できます。GUIツールを使わずSQLだけで定義を取得できるため、スキーマ管理やバー...
PL/SQL

【PL/SQL】AUTONOMOUS TRANSACTIONで独立した処理を行う方法

PL/SQLのトランザクションは通常1セッション内で共有され、COMMITやROLLBACKは全体に影響します。しかし「本体トランザクションとは独立してログを書き込みたい」「監査やエラーログだけは確定させたい」といった場面では、AUTONO...
PL/SQL

【PL/SQL】SAVEPOINTを使った部分ロールバックの実装方法

トランザクションの一部だけを取り消して処理を継続したい時、PL/SQLではSAVEPOINTとROLLBACK TO SAVEPOINTを組み合わせることで安全に実現できます。Oracleのトランザクションはネストできませんが、名前付きのセ...
PL/SQL

【PL/SQL】REF CURSORを使った柔軟なデータ取得方法

REF CURSOR(参照カーソル)は、SELECTの結果集合への“ハンドル”を変数として受け渡せる仕組みです。固定の列構成に縛られず、呼び出し元へストリーミング的にデータを渡せるため、画面やレポートなど多様な取得要件に柔軟に対応できます。...
PL/SQL

【PL/SQL】コミットとロールバックの正しい使い方

トランザクション制御はPL/SQLの信頼性と性能に直結します。COMMITとROLLBACKはデータベースの一貫性を保ちつつ、いつ確定・取り消しを行うかを決める重要な操作です。誤用すると整合性崩壊やパフォーマンス劣化を招くため、基本的な仕組...
PL/SQL

【PL/SQL】パフォーマンス改善のためのヒントと注意点

PL/SQLの性能はSQLの品質・I/O・コンテキストスイッチ・データ量・ロジック構造に大きく左右されます。安易なチューニングよりも「正しい設計と測定→ボトルネック特定→最小変更」の順序が重要です。ここでは実務で効くパフォーマンス改善の勘所...
PL/SQL

【PL/SQL】パッケージを使ったコード管理と再利用性向上

PL/SQLで規模が大きくなるほど、プロシージャやファンクションが散在してメンテナンスが難しくなります。パッケージを使うとインターフェースと実装を分離でき、名前空間で衝突を避け、初期化や状態の保持、オーバーロードなどを通じて再利用性を高めら...
Nginx

【Nginx】リバースプロキシの基本設定

Nginxは高速で軽量なWebサーバーとして知られていますが、リバースプロキシとしても強力に利用できます。リバースプロキシはクライアントからのリクエストを一旦受け取り、バックエンドのアプリケーションサーバーやAPIサーバーに転送する仕組みで...
Git

【GitHub】ActionsでCI/CDを自動化する方法

GitHub ActionsはGitHubリポジトリ内のYAMLでワークフローを定義し、プッシュやプルリクエストなどのイベントをトリガーにビルドやテスト、デプロイを自動化できるCI/CD基盤です。外部サービスなしで開始でき、Marketpl...
Python

【Python】requestsでAPIを呼び出す方法

Pythonで外部サービスや自作のサーバーと通信する際によく使われるのが「requests」ライブラリです。シンプルな構文でHTTPリクエストを送信でき、API呼び出しに広く活用されています。ここではrequestsの基本から、GETやPO...
HTML/CSS

【HTML】アクセシビリティ対応のボタンとリンクの違い

Web制作において「ボタン」と「リンク」は似ているようで役割が異なり、アクセシビリティ対応の観点から正しく使い分けることが重要です。見た目を同じようにデザインできても、意味を誤るとスクリーンリーダー利用者やキーボード操作ユーザーにとって混乱...
HTML/CSS

【HTML】alt属性の正しい書き方とSEO効果

画像に代替テキストを設定するalt属性は、アクセシビリティの向上とSEO対策の両方において重要な役割を持っています。正しく書くことでスクリーンリーダー利用者に情報を伝えられるだけでなく、検索エンジンに画像の意味を理解させる助けにもなります。...
HTML/CSS

【HTML】form要素の基本と正しいマークアップ

HTMLでユーザーからの入力を受け取る際に欠かせないのがform要素です。検索フォームやお問い合わせフォーム、ログイン画面など、Webサイトのあらゆる場面で利用されます。ここではform要素の基本構造と正しいマークアップ方法を解説します。f...
Editor

【VSCode】マルチカーソルで効率的に編集する方法

複数の箇所を同時に編集できる「マルチカーソル」は、Visual Studio Codeの強力な機能の一つです。繰り返しの置換や変数名の一括変更など、通常なら手作業や検索置換に頼る作業を直感的に素早く行えます。ここではマルチカーソルの基本操作...
Docker

【Docker】bind mountとvolumeの違いと使い分け

Dockerでコンテナのデータを永続化する方法には「bind mount」と「volume」の2種類があります。どちらもホストとコンテナ間でファイルやディレクトリを共有できますが、仕組みや用途に違いがあります。ここではその違いと、どのように...
HTML/CSS

【CSS】backdrop-filterでガラス風デザインを実装する方法

ガラス越しのように背景をぼかす「ガラスモーフィズム」デザインは、近年のUIで人気のスタイルです。CSSのbackdrop-filterプロパティを利用することで、半透明の背景に背後の要素をぼかし込む表現が可能になります。ここでは基本構文から...