Oracleでのselect intoの目的は何ですか?
Oracleでは、SELECT INTO文を使用してクエリ結果を変数やテーブルに格納します。
具体来说,SELECT INTO语句可以用于以下几种情况:
- 変数に検索結果を保存する:SELECT INTO文を使用して、1つまたは複数の変数に検索結果を保存することができます。例えば:
DECLARE
v_name employee.name%TYPE;
BEGIN
SELECT name INTO v_name FROM employee WHERE id = 1;
DBMS_OUTPUT.PUT_LINE('Name: ' || v_name);
END;
- 複数の変数にクエリ結果を保存する:複数のカラムのクエリ結果を複数の変数に保存するには、SELECT INTOステートメントを使用できます。例えば:
DECLARE
v_name employee.name%TYPE;
v_salary employee.salary%TYPE;
BEGIN
SELECT name, salary INTO v_name, v_salary FROM employee WHERE id = 1;
DBMS_OUTPUT.PUT_LINE('Name: ' || v_name || ', Salary: ' || v_salary);
END;
- クエリの結果をテーブルに保存する:SELECT INTOステートメントを使用して、クエリの結果を新しいテーブルまたは既存のテーブルに保存することができます。例えば:
CREATE TABLE new_employee AS
SELECT name, salary FROM employee WHERE hire_date > SYSDATE - 365;
SELECT INTO文は、単一行のクエリ結果を返すことしかできないことに注意してください。複数行の結果が返される場合、例外がスローされます。複数行の結果を処理する場合は、カーソルまたはBULK COLLECT INTO文を使用できます。