declare
lvDate varchar2(50);
lvSql varchar2(50);
begin
select sysdate into lvdate from dual;
lvsql := 'create table ' || lvdate || '( id number(5))';
EXECUTE IMMEDIATE lvsql;
end;
lvDate varchar2(50);
lvSql varchar2(50);
begin
select sysdate into lvdate from dual;
lvsql := 'create table ' || lvdate || '( id number(5))';
EXECUTE IMMEDIATE lvsql;
end;
低版本的要用dbms_sql包实现。
declare
lvDate varchar2(50);
lvSql varchar2(50);
begin
select to_char(sysdate,'yyyyMMdd') into lvdate from dual; -- 获取系统时间
lvsql := 'create table T_' || lvdate || '( id number(5))'; --创建命令
EXECUTE IMMEDIATE lvsql;
end;是存储过程 ,但你用时
create or replace procedure ()
....
as
declare
lvDate varchar2(50);
lvSql varchar2(50);
begin
select to_char(sysdate,'yyyyMMdd') into lvdate from dual;
lvsql := 'create table T_' || lvdate || '( id number(5))';
dbms_output.put_line(lvsql);
EXECUTE IMMEDIATE lvsql;
end;
...
begin
...
end;
是无名存储过程create or replace procedure ()
....
as
begin
end;
是有名称存储过程
create or replace procedure ()
....
as
declare
lvDate varchar2(50);
lvSql varchar2(50);
begin
select to_char(sysdate,'yyyyMMdd') into lvdate from dual;
lvsql := 'create table T_' || lvdate || '( id number(5))';
dbms_output.put_line(lvsql);
EXECUTE IMMEDIATE lvsql;
end;
2 as
3 lvDate varchar2(50);
4 lvSql varchar2(50);
5 begin
6 select to_char(sysdate,'yyyyMMddhh24miss') into lvdate from dual;
7 lvsql := 'create table T_' || lvdate || '( id number(5))';
8 dbms_output.put_line(lvsql);
9 EXECUTE IMMEDIATE lvsql;
10 end;
11 /过程已创建。SQL> exec mytbl;PL/SQL 过程已成功完成。SQL> exec mytbl;PL/SQL 过程已成功完成。
机械的pl/sql看看吧