当前位置: 代码迷 >> Oracle开发 >> ora_06575异常
  详细解决方案

ora_06575异常

热度:133   发布时间:2016-04-24 06:23:56.0
ora_06575错误
create OR REPLACE PROCEDURE  P_24308_1028 as
begin
     v_tablename:='t_order_mast_24308_'||to_char(trunc(sysdate),'yyyymm');
     v_sql:='create table'|| v_tablename || 'as select * from t_order_mast_24308'||';';
     Execute?Immediate v_sql;
end?P_24308_1028;

执行 call P_24308_1028() ;    报错ora_06575错误

求教啊!!!
------解决思路----------------------
先申明类型

v_tablename varchar2(100);
v_sql varchar2(100);

------解决思路----------------------

-- 1 。 create table 和 表名加一个空格,
-- 2 。 最后的 分号,不要加到态 SQL 中。
SQL> create table t_order_mast_24308(id int ) ;
Table created
SQL> create OR REPLACE PROCEDURE  P_24308_1028 as
  2  v_sql varchar2(1000) ;
  3  v_tablename varchar(30);
  4  begin
  5       v_tablename:='t_order_mast_24308_'
------解决思路----------------------
to_char(trunc(sysdate),'yyyymm');
  6       v_sql:='create table '
------解决思路----------------------
 v_tablename 
------解决思路----------------------
 ' as select * from t_order_mast_24308';
  7       Execute Immediate v_sql;
  8  end P_24308_1028;
  9  /
Procedure created
SQL> call P_24308_1028() ;
Method called
SQL> drop procedure P_24308_1028 ;
Procedure dropped
SQL> drop table t_order_mast_24308  ;
Table dropped
SQL> drop table t_order_mast_24308_201510 ;
Table dropped

SQL> 

  相关解决方案