検索
ホームページデータベースOracleOracle ストアド プロシージャの変数に値を割り当てる方法にはどのようなものがありますか?

変数に値を割り当てる方法: 1. 値を直接割り当てるには「:=」を使用し、構文は「変数名:=値;」です; 2. 「選択テーブル フィールド」を使用します。 into variable from table" ステートメント; 3. 「即時 SQL ステートメント文字列を変数に実行する」ステートメントを使用します。

Oracle ストアド プロシージャの変数に値を割り当てる方法にはどのようなものがありますか?

このチュートリアルの動作環境: Windows 7 システム、Oracle 11g バージョン、Dell G3 コンピューター。

#Oracle ストアド プロシージャの変数宣言と割り当て方法

1. 変数を宣言する 3 つの方法

データ型の宣言方法で区別する

方法1:データ型を直接宣言する

形式:変数名データ型(サイズ)

V_START_DATE VARCHAR2(19);
v_num number;

注:

文字列型に設定する場合、サイズを指定する必要があります。指定しないとエラーが報告されます。

変数は、「begin」キーワードを実行する前に指定する必要があります。

--错误用法
BEGIN
v_sql varchar2(100) := 'SELECT ORGSEQ FROM BASE_ORG_INFO where orgcode=to_char(410621101233)';

方法 2: %TYPE ステートメントを使用する

形式: 変数名テーブル名.フィールド名 %TYPE

意味: 変数のデータ型は、指定されたテーブルの指定されたフィールドのデータ型と一致しています

V_ORGSEQ BASE_ORG_INFO.ORGSEQ%TYPE;

方法 3: %ROWTYPE ステートメントを使用します

形式: 変数名テーブル名%ROWTYPE

意味: 変数のデータ型は、指定されたテーブルの指定された行レコード (すべてのフィールド) のデータ型と一致しています

--VIRTUAL_CARD表整行数据
V_ROW_VIRTUAL_CARD VIRTUAL_CARD%ROWTYPE; 

概要:

ストアド プロシージャでは、変数を宣言する場合、キーワード「DECLARE」を使用する必要はありません。

変数では大文字と小文字が区別されません。

変数は使用前に宣言する必要があります。

#2. 変数の代入の 3 つの方法

方法 1: 直接代入、":=

使用条件: 変数を宣言する最初の 2 つの方法に適用されます。

V_ORGID :=  '110';  
説明:

変数の直後に SQL ステートメントを続けることはできません。SQL は実行されません。方法 3 を参照してください。

--错误用法
V_ORGSEQ := SELECT ORGSEQ INTO V_ORGSEQ FROM BASE_ORG_INFO;
--正确用法
V_ORGSEQ := 'SELECT ORGSEQ INTO V_ORGSEQ FROM BASE_ORG_INFO';
変数の宣言と代入は同時に行うことができます。

--正确用法
v_sql varchar2(100) := 'SELECT ORGSEQ FROM BASE_ORG_INFO where orgcode=to_char(410621101233)';
BEGIN
 /* 具体业务 */
END;
方法 2: テーブル フィールドをテーブルから変数に選択します

バリエーション 1: 指定されたテーブルの指定されたフィールドをクエリします

使用条件 :

変数の宣言に適用できる最初の 2 つのメソッドが使用できます

--根据医疗机构ID查询对应的父机构的机构序列
SELECT ORGSEQ INTO V_ORGSEQ FROM BASE_ORG_INFO
 WHERE ORGID =
       (SELECT PARENTORGID FROM BASE_ORG_INFO WHERE ORGID = V_ORGID);
バリエーション 2: 指定されたテーブルのすべてのフィールドをクエリします

使用条件:

のみ適用可能宣言への変数の 3 番目のメソッド

--将id=5120的VIRTUAL_CARD表数据赋值给变量V_ROW_VIRTUAL_CARD
SELECT * INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T where t.id = 5120;
説明:

クエリ結果は 1 つのレコードのみを返すことができます;

Query table フィールドはテーブルのすべてのフィールドである必要があります。

エラー例:

--错误举例一:查询的是所有表记录
SELECT * INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T;
--错误举例二:查询的是该表的多个字段
SELECT t.id,t.name INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T;  

方法 3: SQL ステートメント文字列を変数

declare/* 存储过程,不需要声明 */
  v_sql varchar2(100);
  V_ORGSEQ varchar2(100);
begin
  v_sql := 'SELECT ORGSEQ FROM BASE_ORG_INFO where orgcode=to_char(410621101233)';
  --V_ORGSEQ赋值
  execute immediate v_sql INTO V_ORGSEQ;
  --打印结果
  DBMS_OUTPUT.put_line(V_ORGSEQ);
END;

3 に直接実行します。変数の呼び出し

一般に、変数には次の 3 つの使用シナリオのみがあります: 代入、論理判断、算術演算;

注:

はクエリとして使用できません。 column

--错误调用
select V_ORGSEQ from dual;
%ROWTYPE を使用して宣言された変数を呼び出すにはどうすればよいですか?

「変数名.テーブルフィールド」メソッドを使用すると、テーブル内の指定した行(戻り行)の指定した列(任意の列)で表されるデータを取得できます。

--V_ROW_VIRTUAL_CARD赋值
SELECT * INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T where t.id = 5120;
--调用
DBMS_OUTPUT.put_line(V_ROW_VIRTUAL_CARD.ID);  

推奨チュートリアル: 「

Oracle チュートリアル

以上がOracle ストアド プロシージャの変数に値を割り当てる方法にはどのようなものがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
MySQL対Oracle:長所と短所MySQL対Oracle:長所と短所Apr 14, 2025 am 12:01 AM

MySQLおよびOracleの選択は、コスト、パフォーマンス、複雑さ、および機能的要件に基づいている必要があります。1。MySQLは、予算が限られているプロジェクトに適しており、インストールが簡単で、中小サイズのアプリケーションに適しています。 2。Oracleは大規模な企業に適しており、大規模なデータと高い並行リクエストの処理に優れたパフォーマンスを発揮しますが、構成はコストと複雑です。

Oracleの目的:ビジネスソリューションとデータ管理Oracleの目的:ビジネスソリューションとデータ管理Apr 13, 2025 am 12:02 AM

Oracleは、企業が製品とサービスを通じてデジタル変革とデータ管理を達成するのを支援します。 1)Oracleは、データベース管理システム、ERP、CRMシステムなどの包括的な製品ポートフォリオを提供し、企業がビジネスプロセスを自動化および最適化するのを支援します。 2)E-BusinessSuiteやFusionApplicationsなどのOracleのERPシステムは、エンドツーエンドのビジネスプロセスの自動化を実現し、効率を改善し、コストを削減しますが、実装とメンテナンスコストが高くなります。 3)OracLedatabaseは、高い並行性と高可用性データ処理を提供しますが、ライセンスコストが高くなります。 4)パフォーマンスの最適化とベストプラクティスには、インデックス作成と分割技術の合理的な使用、定期的なデータベースのメンテナンス、コーディング仕様のコンプライアンスが含まれます。

Oracle Libraryの故障を削除する方法Oracle Libraryの故障を削除する方法Apr 12, 2025 am 06:21 AM

Oracleがライブラリの構築に失敗した後、失敗したデータベースを削除する手順:SYSユーザー名を使用してターゲットインスタンスに接続します。ドロップデータベースを使用して、データベースを削除します。クエリv $データベースデータベースが削除されていることを確認します。

Oracle Loopでカーソルを作成する方法Oracle Loopでカーソルを作成する方法Apr 12, 2025 am 06:18 AM

Oracleでは、forループループは動的にカーソルを作成できます。手順は次のとおりです。1。カーソルタイプを定義します。 2。ループを作成します。 3.カーソルを動的に作成します。 4。カーソルを実行します。 5。カーソルを閉じます。例:カーソルをサイクルごとに作成して、上位10人の従業員の名前と給与を表示できます。

Oracleビューをエクスポートする方法Oracleビューをエクスポートする方法Apr 12, 2025 am 06:15 AM

Oracleビューは、Exputility:Oracleデータベースにログインしてエクスポートできます。 Expユーティリティを開始し、ビュー名とエクスポートディレクトリを指定します。ターゲットモード、ファイル形式、テーブルスペースなどのエクスポートパラメーターを入力します。エクスポートを開始します。 IMPDPユーティリティを使用してエクスポートを確認します。

Oracleデータベースを停止する方法Oracleデータベースを停止する方法Apr 12, 2025 am 06:12 AM

Oracleデータベースを停止するには、次の手順を実行します。1。データベースに接続します。 2。すぐにシャットダウンします。 3.シャットダウンは完全に中止します。

Oracleログがいっぱいの場合はどうすればよいですかOracleログがいっぱいの場合はどうすればよいですかApr 12, 2025 am 06:09 AM

Oracleログファイルがいっぱいになると、次のソリューションを採用できます。1)古いログファイルをクリーンします。 2)ログファイルサイズを増やします。 3)ログファイルグループを増やします。 4)自動ログ管理をセットアップします。 5)データベースを再発射化します。ソリューションを実装する前に、データの損失を防ぐためにデータベースをバックアップすることをお勧めします。

Oracle Dynamic SQLを作成する方法Oracle Dynamic SQLを作成する方法Apr 12, 2025 am 06:06 AM

SQLステートメントは、Oracleの動的SQLを使用して、ランタイム入力に基づいて作成および実行できます。手順には、次のものが含まれます。動的に生成されたSQLステートメントを保存するための空の文字列変数を準備します。 executeを即座に使用するか、ステートメントを準備して、動的なSQLステートメントをコンパイルおよび実行します。バインド変数を使用して、ユーザー入力またはその他の動的値を動的SQLに渡します。実行するか、実行するか、動的SQLステートメントを実行します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)