ホームページ データベース Oracle Oracle ストアド プロシージャの基本構造には何が含まれますか?

Oracle ストアド プロシージャの基本構造には何が含まれますか?

Mar 02, 2022 pm 04:52 PM
oracle ストアドプロシージャ

Oracle ストアド プロシージャの構造は、1. 処理宣言、2. 実行処理部分、3. ストアド プロシージャ例外の 3 つの部分で構成されますが、スクリプトのフォールト トレランスを強化する場合、およびストアド プロシージャの例外部分は省略できます。例外処理を記述するだけでデバッグが容易になります。

Oracle ストアド プロシージャの基本構造には何が含まれますか?

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

ストアド プロシージャとは何ですか?

ストアド プロシージャ: Baidu Encyclopedia で説明されています。ストアド プロシージャ (Stored Procedure) は大規模なデータベース システムで使用されます。 , 特定の関数を完了するための SQL ステートメントのセットがデータベースに保存されます。最初のコンパイル後、再度呼び出すときに再度コンパイルする必要はありません。ユーザーはストアド プロシージャの名前を指定し、パラメータを指定します (ストアド プロシージャの場合は、プロシージャにはパラメータがあります) ) を使用してストアド プロシージャを呼び出します。

簡単に言うと、これは 1 つのことを具体的に実行する SQL ステートメントです。

データベース自体または Java プログラムによって呼び出すことができます。

Oracle データベースのストアド プロシージャはプロシージャです。

ストアド プロシージャの構造

(1) 基本構造

Oracle ストアド プロシージャには 3 つの部分が含まれます:処理宣言、実行処理部分、ストアドプロシージャ例外(記述してもしなくてもよい、スクリプトのフォールトトレランスやデバッグの利便性向上のため、例外処理を記述する)

(2) No-パラメータ ストレージ プロシージャ

/**
name_procedure就是自己自定义的存储过程名
*/
create or replace procedure name_procedure AS/IS
	变量名1  数据类型;
	变量名2  数据类型;
BEGIN
	--要处理的业务逻辑
	EXCEPTION    --存储过程异常
END name_procedure;
ログイン後にコピー

(3). パラメータ ストアド プロシージャ

通常のパラメータ ストアド プロシージャ

/*
age 类型为number 初始化为20;
*/
CREATE OR REPLACE PROCEDURE name_procedure (param1 TYPE)
AS/IS
name varchar(20);
age number :=20;
BEGIN
  --业务处理.....
END ;
ログイン後にコピー

パラメータと代入を含むストアド プロシージャ

CREATE OR REPLACE PROCEDURE 存储过程名称(
       s_no in varchar,
       s_name out varchar,
       s_age number) AS
total NUMBER := 0;
BEGIN
  SELECT COUNT(1) INTO total FROM student s WHERE s.age=s_age;
  dbms_output.put_line('符合该年龄的学生有'||total||'人');
  EXCEPTION
    WHEN too_many_rows THEN 
    DBMS_OUTPUT.PUT_LINE('返回值多于1行'); 
END
ログイン後にコピー

パラメータ IN は入力パラメータを表し、パラメータのデフォルト モードです。

  • OUT は戻り値パラメータを表し、その型は Oracle の任意の有効な型を使用できます。

  • #OUT モードで定義されたパラメータはプロセス本体内でのみ割り当てることができます。つまり、パラメータは呼び出し元のプロセスに特定の値を渡すことができます

  • IN OUT は、パラメーターがプロセスに値を渡すことができる、または特定の値を渡すことができることを意味します。

行 7: パラメーターを使用したクエリ ステートメントフィルター条件として s_age、INTO キーワードを指定し、見つかった結果を total 変数に代入します。

8 行目: クエリ結果を出力します。「||」はデータベース内の文字列を接続するために使用されます

9 ~ 11 行目: 例外処理を実行します

ストアド プロシージャの構文

(1)演算子

Oracle ストアド プロシージャの基本構造には何が含まれますか?

(2) SELECT INTO STATEMENTステートメント

  • クエリ結果を 1 つの変数または複数の変数に割り当てます

要件: 結果は 100 点です生徒の名前、年齢, 発祥の地

CREATE OR REPLACE PROCEDURE DEMO_CDD1 IS
s_name VARCHAR2;   --学生名称
s_age NUMBER;      --学生年龄
s_address VARCHAR2; --学生籍贯
BEGIN
  --给单个变量赋值
  SELECT student_address INTO s_address
  FROM student where student_grade=100;
   --给多个变量赋值
  SELECT student_name,student_age INTO s_name,s_age
  FROM student where student_grade=100;
  --输出成绩为100分的那个学生信息
  dbms_output.put_line('姓名:'||s_name||',年龄:'||s_age||',籍贯:'||s_address);
END
ログイン後にコピー

#(3) Select文

#

//if 后面一定要添加THEN 相当于Java中的 大括号
IF s_sex=1 THEN
  dbms_output.put_line('这个学生是男生');
ELSE IF THEN
  dbms_output.put_line('这个学生是女生');
ELSE
  dbms_output.put_line('这个学生性别错误');
END IF
ログイン後にコピー
##(4) ループ文

# #a.基本ループ

LOOP
  IF 表达式 THEN
    EXIT;
  END IF
END LOOP;
ログイン後にコピー
b.while ループ
WHILE 表达式 LOOP
  dbms_output.put_line('haha');
END LOOP;
ログイン後にコピー

c.for ループ

//a 1 到 20 范围
FOR a in 10 .. 20 LOOP
  dbms_output.put_line('value of a: ' || a);
END LOOP;
ログイン後にコピー
推奨チュートリアル: 「

Oracle チュートリアル

以上がOracle ストアド プロシージャの基本構造には何が含まれますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Oracleのストアドプロシージャの使用方法 Oracleのストアドプロシージャの使用方法 Apr 11, 2025 pm 07:03 PM

ストアドプロシージャは、データベースに保存できるSQLステートメントのセットであり、別のユニットと繰り返し呼ぶことができます。パラメーター(in、out、inout)を受け入れ、コードの再利用、セキュリティ、パフォーマンス、モジュール性の利点を提供できます。例:ストアドプロシージャを作成して、2つの数値の合計を計算してOUTパラメーターに保存します。

Oracleで環境変数を構成する方法 Oracleで環境変数を構成する方法 Apr 11, 2025 pm 07:18 PM

Oracle Environment Variable Configuration Guide:Oracle_home Environment変数を作成し、Oracle Home Directoryを指します。 Oracle Binary DirectoryをPath Environment変数に追加します。 TNS_ADMIN環境変数を設定します(ファイルがTNSを使用して命名されている場合)。環境変数の設定を検証して、出力が設定変数を表示していることを確認します。

テーブルフィールドをOracleに追加する方法 テーブルフィールドをOracleに追加する方法 Apr 11, 2025 pm 07:30 PM

ALTER TABLEステートメントを使用して、特定の構文は次のとおりです。ALTERTABLE TABLE_NAME add column_name data_type [constraint-clause]。 WHERE:table_nameはテーブル名、column_nameはフィールド名、data_typeはデータ型、制約条項はオプションの制約です。例:テーブルの従業員を変更すると、電子メールvarchar2(100)は、従業員テーブルに電子メールフィールドを追加します。

Oracleを再び追求する方法 Oracleを再び追求する方法 Apr 11, 2025 pm 07:33 PM

Oracleは複数の重複排除クエリメソッドを提供します。個別のキーワードは、各列の一意の値を返します。 Group by Clauseは、結果をグループ化し、各グループの非繰り返し値を返します。一意のキーワードは、一意の行のみを含むインデックスを作成するために使用され、インデックスをクエリすると自動的に重複排除が行われます。 row_number()関数は、一意の数値を割り当て、行1のみを含む結果をフィルタリングします。min()またはmax()関数は、数値列の非繰り返し値を返します。交差する演算子は、2つの結果セットの共通値を返します(複製なし)。

Oracleデータベースをインポートする方法 Oracleデータベースをインポートする方法 Apr 11, 2025 pm 08:06 PM

データインポート方法:1。SQLLOADERユーティリティを使用します。データファイルを準備し、制御ファイルを作成し、SQLLoaderを実行します。 2。IMP/EXPツールを使用します。データをエクスポートし、データをインポートします。ヒント:1。ビッグデータセットに推奨されるSQL*ローダー。 2。ターゲットテーブルが存在する必要があり、列定義が一致します。 3。インポート後、データの整合性を検証する必要があります。

Oracleで文字化けのコードを解決する方法 Oracleで文字化けのコードを解決する方法 Apr 11, 2025 pm 10:09 PM

Oracle Garbledの問題は、データベース文字セットをチェックしてデータと一致するようにすることで解決できます。データベースに一致するようにクライアント文字を設定します。データを変換するか、列文字セットを変更してデータベース文字セットに一致させます。 Unicode文字セットを使用して、マルチバイト文字セットを避けます。データベースとクライアントの言語設定が正しいことを確認してください。

Oracleで主要なキー制約を作成する方法 Oracleで主要なキー制約を作成する方法 Apr 11, 2025 pm 07:15 PM

主キーは、テーブル内の各行を一意に識別する特別な列または列の組み合わせです。テーブル内のレコードが一意であり、次のように作成できることが保証されます。AlterTableステートメントを使用してテーブル名を指定します。プライマリキーキーワードを追加して、列名を追加して、プライマリキーとして指定します。主なキーの制約は、データの一意性を確保し、クエリ速度を改善し、レコードの重複を防ぎ、テーブル結合を簡素化するのに役立ちます。

Oracleのフィールド名を変更する方法 Oracleのフィールド名を変更する方法 Apr 11, 2025 pm 07:21 PM

Oracleテーブルでフィールド名を変更する手順は次のとおりです。データベースに接続します。 Alter Tableステートメントを使用して、フィールド名を変更します。テーブル名と古いフィールド名を指定します。新しいフィールド名を指定します。変更を送信します。

See all articles