oracle 中动态sql语句,表名为变量,怎么解

2024-11-01 20:18:45
推荐回答(2个)
回答(1):

  表名可用变量,但一般需要用到动态sql,举例如下:
  declare
  v_date varchar2(8);--定义日期变量
  v_sql varchar2(2000);--定义动态sql
  v_tablename varchar2(20);--定义动态表名
  begin
  select to_char(sysdate,'yyyymmdd') into v_date from dual;--取日期变量
  v_tablename := 'T_'||v_date;--为动态表命名
  v_sql := 'create table '||v_tablename||'
  (id int,
  name varchar2(20))';--为动态sql赋值
  dbms_output.put_line(v_sql);--打印sql语句
  execute immediate v_sql;--执行动态sql
  end;
  执行以后,就会生成以日期命名的表。

回答(2):

表名可用变量,但一般需要用到动态sql,举例如下: declare v_date varchar2(8);--定义日期变量 v_sql varchar2(2000);--定义动态sql v_tablename varchar2(20);--定义动态表名 begin select to_char(sysdate,'yyyymmdd') into