当前位置: 代码迷 >> Oracle技术 >> 请帮忙观一个存储过程~
  详细解决方案

请帮忙观一个存储过程~

热度:39   发布时间:2016-04-24 08:25:11.0
请帮忙看一个存储过程~~
CREATE OR REPLACE PROCEDURE insert_test1
as
  v_date varchar2(50);
  v_sql varchar(2000);
  begin 
  select to_char(sysdate-1/(60*24),'yyyyMMddHHmi') INTO v_date from dual;--查询当前时间的前一分钟
  v_sql:='create table view_test_'||v_date||' as(select count(1) js from g_test)';--组成SQL创建表
  EXECUTE IMMEDIATE v_sql;
  commit;
end;
上面这个存储过程为什么是错的?能编译过去,但是执行不了,我直接拿出来.

declare
  v_date varchar2(50);
  v_sql varchar(2000);
  begin 
  select to_char(sysdate-1/(60*24),'yyyyMMddHHmi') INTO v_date from dual;--查询当前时间的前一分钟
  v_sql:='create table view_test_'||v_date||' as(select count(1) js from g_test)';--组成SQL创建表
  EXECUTE IMMEDIATE v_sql;

这样执行是对的~~

------解决方案--------------------
SQL code
怎么就执行不了?17:01:23 @ > conn / as sysdba已连接。17:01:28 SYS@tdwora > grant create any table to scott;授权成功。17:01:29 SYS@tdwora > conn scott/bee56915已连接。17:01:37 SCOTT@tdwora > CREATE OR REPLACE PROCEDURE insert_test117:01:50   2  as17:01:50   3    v_date varchar2(50);17:01:50   4    v_sql varchar(2000);17:01:50   5    begin17:01:50   6    select to_char(sysdate-1/(60*24),'yyyyMMddHHmi') INTO v_date from dual;--查询当前时间的前一分钟17:01:50   7    v_sql:='create table view_test_'||v_date||' as select count(1) js from g_test';--组成SQL创建表17:01:50   8    EXECUTE IMMEDIATE v_sql;17:01:50   9    commit;17:01:50  10  end;17:01:50  11  /SP2-0804: 过程已创建, 但带有编译警告17:01:52 SCOTT@tdwora > exec insert_test1;PL/SQL 过程已成功完成。17:02:53 SCOTT@tdwora > select table_name from user_tables where table_name like 'VIEW%';VIEW_TEST_20120921050017:03:16 SCOTT@tdwora > SELECT * FROM VIEW_TEST_201209210500;         217:03:33 SCOTT@tdwora > set heading ofSP2-0265: heading 必须设置为 ON 或 OFF17:04:02 SCOTT@tdwora > set heading on17:04:05 SCOTT@tdwora > SELECT * FROM VIEW_TEST_201209210500;        JS----------         2
  相关解决方案