0
iはforループせずにコードを書かれていたが、あなたのテーブル構造を提供することができforループを使ってplsqlのプロシージャで私のテーブルの列を更新する方法は?
begin
UPDATE XX_TBEMP
SET COMM=SAL*.05
WHERE SAL BETWEEN 80000 AND 99999;
end PR_UPDATETBEMP;
iはforループせずにコードを書かれていたが、あなたのテーブル構造を提供することができforループを使ってplsqlのプロシージャで私のテーブルの列を更新する方法は?
begin
UPDATE XX_TBEMP
SET COMM=SAL*.05
WHERE SAL BETWEEN 80000 AND 99999;
end PR_UPDATETBEMP;
create or replace PACKAGE XX_UPDATETBEMP AS
PROCEDURE XX_UPDATECOMM;
end XX_UPDATETBEMP;
create or replace PACKAGEBODY XX_UPDATETBEMP AS
PROCEDURE XX_UPDATECOMM IS
CURSOR C_TBEMP IS SELECT * FROM XX_TBEMP;
R_TBEMP C_TBEMP%ROWTYPE;
BEGIN
FOR SAL IN C_TBEMP
LOOP
UPDATE XX_TBEMP
SET COMM = sal * 0.2 where SAL BETWEEN 30000 AND 49999;
UPDATE XX_TBEMP
SET COMM = sal * 0.15 where SAL BETWEEN 50000 AND 79999;
UPDATE XX_TBEMP
SET COMM = sal * 0.1 where SAL BETWEEN 80000 and 99999;
END LOOP;
END XX_UPDATECOMM;
END XX_UPDATETBEMP;
ような手順PR_UPDATETBEMP(数COMM)を作成したり、置き換え、forループによってそれを更新するために、私にソリューションを提供してください?列など –
なぜあなたはループでこれをしたいですか? 1つの更新ステートメントはすでにすべての行を更新しており、カーソルをループして一度に1行ずつデータを更新するよりもパフォーマンスが向上します。 – Boneist
ENO \t NUMBER(3)\t Y \t \t ENAME \t VARCHAR2(35)\t \t \t HIREDATE \t DATE \t \t \t SAL \t NUMBER(6)\t \t \t EXPR \t NUMBER(3)\t \t \t DEPTNO \t NUMBER(3)\t \t \t JOB 0123私のテーブル構造であるVARCHAR2(20)\t \t \t COMM \t NUMBER(10) –