検索
ホームページデータベースOracleOracle のストアド プロシージャと関数の違いは何ですか

Oracle のストアド プロシージャと関数の違いは何ですか

Feb 22, 2022 pm 06:38 PM
oracle関数ストアドプロシージャ

違い: 1. ストアド プロシージャはデータベース内の特定の操作またはタスクを完了するために使用されますが、関数は特定のデータに使用されます; 2. ストアド プロシージャのプログラム ヘッダーは PROCEDURE で宣言され、戻り値の型はありません関数のプログラムヘッダはFUNCTIONで宣言されており、宣言時に戻り値の型を記述する必要があります。

Oracle のストアド プロシージャと関数の違いは何ですか

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

ストアド プロシージャ

ストアド プロシージャ (ストアド プロシージャ) は、特定の関数を完了するための SQL ステートメントのセットです。コンパイルされ、データベースの真ん中。ユーザーは、ストアド プロシージャの名前を指定し、パラメーターを指定することによって (ストアド プロシージャにパラメーターがある場合)、ストアド プロシージャを実行します。ストアド プロシージャはデータベース内の重要なオブジェクトであり、適切に設計されたデータベース アプリケーションではストアド プロシージャを使用する必要があります。ストアド プロシージャは、フロー制御と SQL ステートメントによって記述されたプロシージャです。このプロシージャはコンパイルおよび最適化されてデータベース サーバーに格納され、アプリケーション プログラムが使用するときにのみ呼び出す必要があります。 ORACLE では、いくつかの関連プロシージャを組み合わせてプログラム パッケージを形成できます。

利点:

1. ストアド プロシージャは作成時にのみコンパイルされるため、今後実行されるたびにストアド プロシージャを再コンパイルする必要はありません。ただし、一般的な SQL ステートメントは実行されるたびにコンパイルされますが、コンパイルは 1 回だけなので、ストアド プロシージャを使用するとデータベースの実行速度が向上します。

2. データベースに対して複雑な操作 (複数のテーブルに対する更新、挿入、クエリ、削除など) を実行する場合、この複雑な操作をストアド プロシージャにカプセル化し、ストアド プロシージャによって提供されるトランザクション処理と組み合わせることができます。データベースを使用します。

3. ストアド プロシージャは再利用できるため、データベース開発者の作業負荷を軽減できます。

4. セキュリティが高く、指定したストアドプロセスを特定のユーザーのみが使用できるように設定できます。

#ストアド プロシージャと関数の違い

#両者の最大の違いは次のとおりです:

1 ). 関数は常に呼び出し元にデータを返し、通常は値のみを返します; 2). ストアド プロシージャ (プロシージャ) はデータを直接返すことはありませんが、出力パラメータの値を変更することができ、これはおおよそ返すものとみなすことができます。値。ストアド プロシージャの出力パラメータの値の数に制限はありません。

一般的なアプリケーションの観点から、戻り値が必要ない場合、または複数の戻り値が必要な場合はストアド プロシージャを使用し、戻り値が 1 つだけの場合は関数を使用します。

2. 関数定義には DDL (select など) ステートメントのみを含めることができます。DML ステートメントは主にプロシージャに含まれます (更新、挿入、データベース上で複雑な操作を実行する場合)。複数のテーブルに対するクエリと削除) )。

select の結果セットを使用したい場合は、カーソルを使用する必要があります。


データベース内の特定の操作またはタスク (挿入、削除など) を完了するために使用されます # # 特定のデータに使用 (クエリの戻り値など) プログラムヘッダ宣言で PROCEDURE を使用します使用プログラム ヘッダー宣言の FUNCTIONプログラム ヘッダー宣言時に戻り値の型は必要ありません 戻り値の型プログラム ヘッダーおよび PL/SQL を宣言するときに記述する必要があります。ブロックには有効な RETURN ステートメントが少なくとも 1 つ含まれている必要がありますIN/OUT/IN OUT を使用できます3 つのパラメータ モード IN/OUT/IN OUT の 3 つのパラメータ モードが使用可能独立した PL/SQL ステートメント独立して実行することはできません。式の一部として呼び出す必要があります戻り値を返すことができますOUT/IN OUTを介した 0 個以上の値 RETURN ステートメントは値を返し、その値は宣言部分と一致します。OUT 型パラメータを介して変数を取り出すこともできますSQL ステートメント ストアド プロシージャは (DML または SELECT) では呼び出すことができません。

Oracle のストアド プロシージャと関数の違いは何ですか

#実際の例

1. 関数

(1) 関数の作成

create or replace function get_salary(
    dept_no number,
    emp_count **out** number)
    return number IS
    v_sum number;begin
    ...exception    ...end get_salary

(2) 関数

declare 
    v_num number;
    v_sum number;begin
    ...(这里应该出现函数名表示调用)end

2 の呼び出し、ストアド プロシージャ

(1) ストアド プロシージャの作成

create or replace procedure pro_demo(
    dept_no number default 10,
    sal_sum out number,
    emp_count out number)
IS
begin
    ...
exception
    ...
end proc_demo;

(2) ストアド プロシージャ

呼び出し構文:

1)、exec ;

2)、execute ;

3)、PL/SQL内で直接呼び出されます。ステートメントブロック内。

例:

declare
    v_num number;
    v_sum number(8,2);
begin
    procedure pro_demo(dept_no=>1,sal_num=>900,emp_count=>10)(这里出现存储过程名表示调用,传递参数值用=>)
end;

3. ローカル ストアド プロシージャ

PL/SQL では、宣言ブロックでローカル ストアド プロシージャを作成することもできます。キーワード create を使用する目的は、ストアド プロシージャをデータベースに保存せず、データベースの変更によって引き起こされるトラブルを回避することです。その主な使用シナリオは、ストアド プロシージャを将来何度も再利用するのではなく、一時的に使用することです。 。

例:

declare
    v_num number;
    v_sum number(8,2);
procedure proc_demo(
    dept_no number default 10,
    sal_sum out number,
    emp_count out number)
IS
begin
    ...(这里不用出现存储过程名)
exception
    ...
end proc_demo;

推奨チュートリアル: 「

Oracle チュートリアル

stored の違いプロシージャと関数
ストアド プロシージャ

関数

SQL ステートメントでは関数を呼び出すことができます ( DML または SELECT)

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

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Oracleのコア機能:データベースソリューションの提供Oracleのコア機能:データベースソリューションの提供Apr 25, 2025 am 12:06 AM

Oracle Databaseは、データセキュリティと高可用性を提供するためにSQLおよびオブジェクトリレーショナルモデルをサポートするリレーショナルデータベース管理システムです。 1. Oracleデータベースのコア関数には、データストレージ、検索、セキュリティ、バックアップ、リカバリが含まれます。 2。その作業原則には、多層貯蔵構造、MVCCメカニズム、およびオプティマイザーが含まれます。 3.基本的な使用には、テーブルの作成、データの挿入、クエリが含まれます。高度な使用には、ストアドプロシージャとトリガーが含まれます。 4.パフォーマンス最適化戦略には、インデックスの使用、最適化されたSQLステートメント、およびメモリ管理が含まれます。

Oracleソフトウェアの使用:データベース管理などOracleソフトウェアの使用:データベース管理などApr 24, 2025 am 12:18 AM

データベース管理に加えて、OracleソフトウェアはJavaeeアプリケーション、データグリッド、高性能コンピューティングでも使用されています。 1. OracleWeblogicserverは、Javaeeアプリケーションの展開と管理に使用されます。 2。OracleCoherenceは、高性能データストレージとキャッシュサービスを提供します。 3. OracleExadataは、高性能コンピューティングに使用されます。これらのツールにより、OracleはエンタープライズITアーキテクチャでより多様な役割を果たすことができます。

ビジネスの世界におけるオラクルの役割ビジネスの世界におけるオラクルの役割Apr 23, 2025 am 12:01 AM

Oracleはデータベース会社だけでなく、クラウドコンピューティングとERPシステムのリーダーでもあります。 1。Oracleは、データベースからクラウドサービスおよびERPシステムへの包括的なソリューションを提供します。 2。Oraclecloudは、AWSとAzureに挑戦し、IAAS、PAAS、SAASサービスを提供します。 3. e-businesssuiteやfusionApplicationsなどのOracleのERPシステムは、企業がオペレーションを最適化するのに役立ちます。

Oracle Software in Action:実際の例Oracle Software in Action:実際の例Apr 22, 2025 am 12:12 AM

現実世界のOracleソフトウェアアプリケーションには、eコマースプラットフォームと製造が含まれます。 1)eコマースプラットフォームでは、OracLedatabaseを使用してユーザー情報を保存および照会します。 2)製造では、Oraclee-BusinessSuiteを使用して、在庫と生産計画を最適化します。

Oracleソフトウェア:アプリケーションと業界Oracleソフトウェア:アプリケーションと業界Apr 21, 2025 am 12:01 AM

Oracleソフトウェアが複数のフィールドに輝く理由は、その強力なアプリケーションとカスタマイズされたソリューションです。 1)Oracleは、データベース管理からERP、CRM、SCM、2)包括的なソリューションを提供します。そのソリューションは、金融、医療、製造などの業界特性に従ってカスタマイズできます。

MySQLとOracleの選択:意思決定ガイドMySQLとOracleの選択:意思決定ガイドApr 20, 2025 am 12:02 AM

MySQLまたはOracleの選択は、プロジェクトの要件に依存します。1。MySQLは、オープンソース、無料、使いやすさのため、中小規模のアプリケーションやインターネットプロジェクトに適しています。 2。Oracleは、その強力で安定した高度な機能のため、大企業のコアビジネスシステムに適していますが、高コストです。

Oracleの製品:深いダイビングOracleの製品:深いダイビングApr 19, 2025 am 12:14 AM

Oracleの製品エコシステムには、データベース、ミドルウェア、クラウドサービスが含まれます。 1。OracLedatabaseはそのコア製品であり、効率的なデータストレージと管理をサポートしています。 2。OracleWeblogicserverなどのミドルウェアは、さまざまなシステムに接続します。 3。OracleCloudは、クラウドコンピューティングソリューションの完全なセットを提供します。

MySQLとOracle:機能と機能の重要な違いMySQLとOracle:機能と機能の重要な違いApr 18, 2025 am 12:15 AM

MySQLとOracleには、パフォーマンス、スケーラビリティ、セキュリティに利点があります。 1)パフォーマンス:MySQLは読み取り操作と高い並行性に適しており、Oracleは複雑なクエリとビッグデータ処理に優れています。 2)スケーラビリティ:MySQLはマスタースレーブの複製とシャードを通じて拡張され、OracleはRACを使用して高可用性と負荷分散を提供します。 3)セキュリティ:MySQLはきめ細かい許可制御を提供しますが、Oracleにはより包括的なセキュリティ機能と自動化ツールがあります。

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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

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

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター