用这个执行 sqlplus ce/123@local as sysdba @e:\a.txt 只能创建一个A表 AA表创建不了
单独执行存储过程 就能建立2个表 用sqlplus 就建立一个
CREATE OR REPLACE PACKAGE BODY cc1 IS
PROCEDURE run
IS
BEGIN
a;
b;
END run;
PROCEDURE a
IS
BEGIN
declare a number;
begin
select count(1) into a from user_tables where table_name='A';
if a>0 then
dbms_output.put_line('表存在');
else
dbms_output.put_line('表不存在');
execute IMMEDIATE
'CREATE TABLE "A"
( "ID" VARCHAR2(10), "NAME" VARCHAR2(10)) ';
end if;
END;
COMMIT;
END a;PROCEDURE b
IS
BEGIN
declare a number;
begin
select count(1) into a from user_tables where table_name='AA';
if a>0 then
dbms_output.put_line('AA表存在');
else
dbms_output.put_line('AA表不存在');
execute IMMEDIATE
'CREATE TABLE "AA"
( "ID" VARCHAR2(10), "NAME" VARCHAR2(10)) ';
end if;
END;
COMMIT;
END b;
END cc1; 存为abc.pck 放到e盘用这个执行 sqlplus ce/123@local as sysdba @e:\a.txt 只能创建一个A表 AA表创建不了
单独执行存储过程 就能建立2个表 用sqlplus 就建立一个a.txt 文件内容
@e:\abc.pck;
exec cc1.run;
exit;麻烦看看
单独执行存储过程 就能建立2个表 用sqlplus 就建立一个
CREATE OR REPLACE PACKAGE BODY cc1 IS
PROCEDURE run
IS
BEGIN
a;
b;
END run;
PROCEDURE a
IS
BEGIN
declare a number;
begin
select count(1) into a from user_tables where table_name='A';
if a>0 then
dbms_output.put_line('表存在');
else
dbms_output.put_line('表不存在');
execute IMMEDIATE
'CREATE TABLE "A"
( "ID" VARCHAR2(10), "NAME" VARCHAR2(10)) ';
end if;
END;
COMMIT;
END a;PROCEDURE b
IS
BEGIN
declare a number;
begin
select count(1) into a from user_tables where table_name='AA';
if a>0 then
dbms_output.put_line('AA表存在');
else
dbms_output.put_line('AA表不存在');
execute IMMEDIATE
'CREATE TABLE "AA"
( "ID" VARCHAR2(10), "NAME" VARCHAR2(10)) ';
end if;
END;
COMMIT;
END b;
END cc1; 存为abc.pck 放到e盘用这个执行 sqlplus ce/123@local as sysdba @e:\a.txt 只能创建一个A表 AA表创建不了
单独执行存储过程 就能建立2个表 用sqlplus 就建立一个a.txt 文件内容
@e:\abc.pck;
exec cc1.run;
exit;麻烦看看
过程一般是先定义好的,并在服务器端编译。然后直接调用。
你如果想调用最好现在前面create or replace procedure,再调用。