我是PL / SQL的新手(以及一般的编程),并设置了一些任务。我正在努力通过他们并获得OKish,但我对这项特殊任务感到难过。我使用Oracle Application Express并创建了我正在使用的表,它名为emp2
以下是完整的任务: 编写一个PL / SQL匿名块,插入100(新)员工ID, 从数字2000开始。使用FOR循环和声明块 定义循环的下限/上限。此外 员工ID,还添加了插入占位符的代码 first_name和last_name列(避免使用NULL!),例如 员工ID 2000的“FName_2000”和“LName_2000”。 (提示:使用连接运算符)。
这是我到目前为止编写的代码(我认为是现货)减去VALUES,因为我无法使这部分工作?
DECLARE
lower constant pls_integer := 2000;
upper constant pls_integer := 2099;
BEGIN
FOR i in lower..upper
LOOP
INSERT INTO emp2 ( EMPLOYEE_ID, FIRST_NAME, LAST_NAME, HIRE_DATE, SALARY,
DEPARTMENT_ID )
VALUES ( //UNSURE WHAT GOES HERE! );
DBMS_OUTPUT.PUT_LINE('Inserted' || SQL%ROWCOUNT || ' row');
END LOOP;
END;
答案 0 :(得分:0)
您的插入语句应如下所示:
INSERT INTO emp2
( EMPLOYEE_ID, FIRST_NAME, LAST_NAME, HIRE_DATE, SALARY, DEPARTMENT_ID )
VALUES
( i, 'Fname', 'Lname', sysdate, 100, 10 );
您需要为部件添加IF语句“还添加在employee_name 2000的first_name和last_name列中插入占位符的代码”。像这样:
IF i = 2000
THEN
INSERT INTO emp2
( EMPLOYEE_ID, FIRST_NAME, LAST_NAME, HIRE_DATE, SALARY, DEPARTMENT_ID )
VALUES
( i, 'Fname ' || i, 'Lname ' || i, sysdate, 100, 10 );
ELSE
INSERT INTO emp2
( EMPLOYEE_ID, FIRST_NAME, LAST_NAME, HIRE_DATE, SALARY, DEPARTMENT_ID )
VALUES
( i, 'Fname', 'Lname', sysdate, 100, 10 );
END IF;