sql >> データベース >  >> RDS >> Oracle

oraclePLSQLインタビューの質問

    これは、最もよくあるoracleplsqlインタビューの質問をまとめたものです。 これらは確かに面接であなたを助けます。質問は基本レベルから上級レベルまでで、PLSQLプログラミングのほとんどの側面をカバーしています。これがお役に立てば幸いです

    質問(1) Oracle PLSQLとは何ですか?
    回答
    PL / SQLは、構造化照会言語(SQL)の手続き型言語拡張です。 PL / SQLの目的は、データベース言語と手続き型プログラミング言語を組み合わせることです


    質問(2) PL / SQLブロックの構成要素は何ですか?
    回答
    宣言部分、実行可能部分、および例外部分。

    質問(3) PL / SQLで使用可能なデータ型は何ですか?
    回答

    NUMBER、VARCHAR2、DATE、CHAR、LONG、BOOLEANなどの一部のスカラーデータ型。
    RECORD&TABLEなどの一部の複合データ型。

    質問(4) カーソルとは何ですか?カーソルが必要な理由
    回答
    カーソルは、情報にアクセスできる名前付きのプライベートSQL領域です。
    カーソルは、複数の行を返すクエリの行を個別に処理するために必要です。

    質問(5) 手順と機能の違いは何ですか?
    回答

    機能 手順
    関数は値を返す必要があります 手順は必要ありません
    構文
    関数名(引数リスト…..)戻り値のデータ型は
    ローカル変数宣言
    開始
    実行可能ステートメント
    例外
    実行ハンドラ
    終了;
    構文
    PROCEDURE名(パラメータリスト…..)
    ローカル変数宣言
    BEGIN
    実行可能ステートメント。
    例外。
    例外ハンドラ
    終了;
    この関数はSQLで使用できますが制限があります プロシージャをSQLから直接呼び出すことはできません。

    質問(6) DELETEとTRUNCATEの違いは何ですか?
    回答

    削除 切り捨て
    DELETEはDMLコマンドです TRUNCATEはDDLコマンドです。
    構文
    テーブルから*を削除します
    コミット;
    構文
    テーブルの切り捨て<テーブル名>;
    最高水準点は変更されません TRUNCATEは、実行後にメモリブロックを再設定します。つまり、オブジェクトの最高水準点を設定します
    ロールバックできます ロールバックできません
    削除トリガーが発生します トリガーは発生しません
    ロールバックセグメントが使用されます 使用されるロールバックセグメントが少なく、はるかに高速です

    質問(7) 暗黙カーソルと明示カーソルとは何ですか?
    回答

    暗黙カーソル 明示カーソル
    暗黙カーソルは、OracleInternallyによって定義および制御されます。 明示カーソルはプログラムで定義および制御されます。
    構文
    宣言
    v_deptvarchar2(50);
    begin
    select dept into v_dept from dept where location =‘XYZ’;
    終了;
    構文
    宣言
    v_deptvarchar2(50);
    カーソルCur_deptは、deptからv_deptにdeptを選択します。ここでlocation =‘XYZ’;
    開始
    Cur_deptを開きます。
    Cur_deptをv_deptにフェッチします。
    Cur_deptを閉じます。
    終了;
    PL/SQLブロックで使用されるすべてのselect/updateクエリは暗黙カーソルです 明示カーソルが開いており、フェッチして閉じています

    質問(8) rowidとrownumとは何ですか?
    Answer
    Rowidは、検索に使用されるテーブルの各行の16進数の一意の数値です。
    Rownumは、テーブルの各行の一意の整数です。並べ替えや分析に使用できます。

    質問(9) 機能、手順、パッケージの違いを説明する
    回答

    関数 -関数の仕様には戻り型があり、その型で指定された値を返す必要があります。
    -コンパイルされた形式でデータベースに格納されます
    –関数は有効な場所のどこからでも呼び出すことができます式
    デュアルからfnd_profile.value('xyz)を選択します。
    手順 -プロシージャの仕様にはreturn型がなく、値を返すことはできませんが、実行を停止して呼び出し元に返すreturnステートメントを含めることができます
    -コンパイルされた形式で保存されますデータベース内
    -プロシージャはスタンドアロンの実行可能ステートメントとして呼び出されます:my_proc(parameter1、parameter2…);
    パッケージ -パッケージには、関数、プロシージャ、およびその他のデータ構造が含まれています。
    –パッケージの利点は、モジュール性、アプリケーション設計の容易さ、および情報です。
    非表示、再利用性、およびパフォーマンスの向上。
    -パッケージ化されたPL/SQLプログラムとパッケージ化されていないPL/SQLプログラムには、いくつかの違いがあります。
    パッケージパッケージ内のデータは、ユーザーのセッションの間保持されます。したがって、パッケージ内のデータは、セッション内のコミット全体に存在します。
    -パッケージに対して実行権限を付与すると、パッケージ仕様のすべての関数とプロシージャ、およびデータ構造に適用されます。パッケージ内の1つのプロシージャまたは関数のみに特権を付与することはできません-パッケージ内のプロシージャおよび関数をオーバーロードして、同じ名前の複数のプログラムを宣言することができます。呼び出される正しいプログラムは、パラメータのデータ型の数に基づいて、実行時に決定されます。

    質問(10) コミット、ロールバック、およびセーブポイントを定義します。

    回答。

    コミット コミットはトランザクションを永続的にするために使用されます
    コミットが実行されると、次のことが発生します
    a)トランザクションによって実行されたすべての作業が永続的になります。
    b)他のユーザーは、トランザクションによって行われたデータの変更を確認できます。
    c )トランザクションによって取得されたロックはすべて解放されます。
    ロールバック ロールバックはトランザクションを元に戻すために使用されます
    ロールバックが実行されると、次のことが発生します
    a)トランザクションによって実行されたすべての作業は、発行されていないかのように取り消されます。
    b)トランザクションによって取得されたロックはすべて解放されます。 。
    セーブポイント SAVEPOINTは、トランザクション全体をロールバックせずに、トランザクションを特定のポイントにロールバックできる場合のトランザクション内のポイントです。

    質問(11) SQLCODEおよびSQLERRMとは何ですか。また、PL/SQL開発者にとってなぜそれらが重要なのですか。
    回答

    SQLCODEは、最後に発生したエラーのエラー番号の値を返します。 SQLERRMは、最後に発生したエラーの実際のエラーメッセージを返します。これらは、例外処理で使用して、コードで発生したエラーを報告したり、エラーログテーブルに保存したりできます。これらは、WHENOTHERSの例外に特に役立ちます。

    質問(12) カーソルが開いている場合、PL / SQLブロック内でどのように見つけることができますか?
    回答
    %ISOPENカーソルステータス変数を使用します。

    質問(13) PL / SQLからデバッグ出力を生成するにはどうすればよいですか?
    回答
    DBMS_OUTPUTパッケージを使用します。もう1つの可能な方法は、SHOW ERRORコマンドを使用することですが、これはエラーのみを表示します。 DBMS_OUTPUTパッケージを使用して、ループの中間結果と、プロシージャの実行時の変数のステータスを表示できます。新しいパッケージUTL_FILEも使用できます。

    質問(14) PL / SQLの例外とは何ですか?
    回答
    そのうちのいくつかは
    1.Too_many_rows
    2.No_Data_Found
    3.Value_error
    4.Zero_errorなど

    質問(15) 1つのテーブルに適用できるトリガーの最大数はいくつですか?
    回答
    12回のトリガー。

    質問(16) パッケージの2つの部分は何ですか?
    回答
    2つの部分は、パッケージ仕様とパッケージ本体です。
    これらは、関数ヘッダー、プロシージャヘッダー、および外部から表示されるデータ構造を含むパッケージ仕様で構成されています。パッケージ本体には、バンドルされているすべてのプロシージャと関数の宣言、実行可能ファイル、および例外処理のセクションが含まれています。

    質問(17) プロシージャのオーバーロードとは何ですか?
    回答
    同じプロシージャ名を別のパラメータリストで繰り返す

    質問(18) プロシージャに渡すことができるパラメータのモードは何ですか?
    回答
    IN、OUT、IN-OUTパラメータ。

    質問(19) PL / SQLアプリケーションを暗号化するためにどのコマンドを使用しますか?
    回答
    ラップ

    質問(20) PL / SQLには何種類のトリガーが存在しますか?
    回答
    PL / SQLには、BEFORE、AFTER、ROW、TABLE、INSERT、UPDATE、DELETE、およびALLキーワードの組み合わせを含む12種類のトリガーがあります。
    ◦BEFOREALLROW INSERT
    ◦すべての行の挿入後
    ◦挿入前
    ◦挿入後など

    質問(21) パッケージ、プロシージャ、および関数の特性が格納されているテーブルに名前を付けますか?
    回答
    dba_objects、dba_Source、およびdba_error。
    または
    user_objects、user_Sourceおよびuser_error。

    質問(22) ストアドプロシージャとは何ですか?
    回答
    ストアド・プロシージャは、1つ以上の特定の機能を実行する一連の文または名前付きPL/SQLブロックです。これは、他のプログラミング言語の手順に似ています。データベースに保存され、繰り返し実行できます。スキーマオブジェクトとして保存されます。ネスト、呼び出し、パラメータ化が可能です。

    質問(23) ストアドプロシージャを実行する方法は?
    回答
    ストアドプロシージャを実行するには2つの方法があります。
    SQLプロンプトから、EXECUTEまたはEXECの後にprocedure_nameを記述します

    質問(24) Raise_application_errorとは何ですか?
    回答
    Raise_application_errorは、パッケージDBMS_STANDARDのプロシージャであり、保存されているサブプログラムまたはデータベーストリガーからuser_definedエラーメッセージを発行できます。

    質問(25) プラグマEXECPTION_INITとは何ですか?使用法を説明しますか?
    回答
    PRAGMA EXCEPTION_INITは、例外をOracleエラーに関連付けるようにコンパイラに指示します。特定のOracleエラーのエラーメッセージを取得します。

    例えばPRAGMA EXCEPTION_INIT(例外名、Oracleエラー番号)

    OraclePlSQLの面接の質問をまとめたものが気に入っていただければ幸いです。今後、このような質問をさらに投稿する予定です

    関連リンク

    Oracleアプリは質問と回答を面接します

    oracledbaインタビューの質問

    OracleRACインタビューの質問

    Weblogicインタビューの質問

    oracleplsqlインタビューの質問の編集が気に入っていただければ幸いです。フィードバックを提供してください


    1. PLSQLプロシージャを使用してOracleのCSVファイルにデータをエクスポートする方法

    2. SQLServerログインのパスワードを変更する

    3. 文字列->java.util.Date->java.sql.Date(タイムスタンプ付き)

    4. varcharとcharを比較する