Plsql 创建表,然后将数据从另一个表插入到新表中
我正在创建一个表名emp_information,检查表是否存在于数据库中,如果不存在,则创建表,然后将数据从bank表插入emp_information表中Plsql 创建表,然后将数据从另一个表插入到新表中,plsql,Plsql,我正在创建一个表名emp_information,检查表是否存在于数据库中,如果不存在,则创建表,然后将数据从bank表插入emp_information表中 DECLARE ncount NUMBER; v_sql VARCHAR2(4000); CURSOR c1 IS SELECT bank_code, center_code, bank_name, logo FROM bank WHERE bank_code
DECLARE
ncount NUMBER;
v_sql VARCHAR2(4000);
CURSOR c1
IS
SELECT bank_code,
center_code,
bank_name,
logo
FROM bank
WHERE bank_code ='607143';
BEGIN
SELECT COUNT(1) INTO ncount FROM tab WHERE tname LIKE '%EMP_INFORMATION%';
IF (ncount <= 0) THEN
DBMS_OUTPUT.PUT_LINE (ncount || 'count');
BEGIN
v_sql :=' CREATE TABLE EMP_INFORMATION
(
emp_id VARCHAR2(3),
emp_name VARCHAR2(20),
emp_salary VARCHAR2(3),
emp_department VARCHAR2(3)
)';
EXECUTE immediate v_sql;
COMMIT;
BEGIN
FOR i IN c1
LOOP
INSERT
INTO EMP_INFORMATION
(
emp_id,
emp_name,
emp_salary,
emp_department
)
VALUES
(
i.bank_code,
i.bank_name,
i.center_code,
i.logo
);
END LOOP;
END;
END;
END IF;
end;
/
声明
n计数;
v_sql VARCHAR2(4000);
光标c1
是
选择银行代码,
中心代码,
银行名称,
标志
从银行
银行代码='607143';
开始
从选项卡中选择COUNT(1)到ncount,该选项卡的名称类似于“%EMP_INFORMATION%”;
如果(ncount在匿名块中使用execute immediate创建表时,使用execute immediate将数据插入其中
DECLARE
ncount NUMBER;
v_sql VARCHAR2(4000);
CURSOR c1
IS
SELECT bank_code,
center_code,
bank_name,
logo
FROM bank
WHERE bank_code ='607143';
BEGIN
SELECT COUNT(1) INTO ncount FROM tab WHERE tname LIKE '%EMP_INFORMATION%';
IF (ncount <= 0) THEN
DBMS_OUTPUT.PUT_LINE (ncount || 'count');
BEGIN
v_sql :=' CREATE TABLE EMP_INFORMATION
(
emp_id VARCHAR2(3),
emp_name VARCHAR2(20),
emp_salary VARCHAR2(3),
emp_department VARCHAR2(3)
)';
EXECUTE IMMEDIATE v_sql;
BEGIN
FOR i IN c1
LOOP
EXECUTE IMMEDIATE 'INSERT
INTO EMP_INFORMATION
(
emp_id,
emp_name,
emp_salary,
emp_department
)
VALUES
(
:a,
:b,
:c,
:d
)' using i.bank_code, i.bank_name, i.center_code, i.logo;
END LOOP;
END;
END;
END IF;
end;
/
声明
n计数;
v_sql VARCHAR2(4000);
光标c1
是
选择银行代码,
中心代码,
银行名称,
标志
从银行
银行代码='607143';
开始
从选项卡中选择COUNT(1)到ncount,该选项卡的名称类似于“%EMP_INFORMATION%”;
如果(n计算您在哪里检查是否存在?请查看第30行第16列中您尝试访问的表;我们这里没有任何行号。我只是给了您一些提示。感谢您的回答。第30行在“输入EMP_信息…”语句中,第16列以EMP_信息开始。我认为该表未创建,并且在尝试向中插入数据时该表出现错误,表示表或视图不存在…是吗?