create or replace procedure CREATE_TABLE(TAB_NAME in varchar2,COLUMN_NAME in varchar2)
is TEMP_NUM NUMBER :=0;
begin
select count(*) into TEMP_NUM from user_tables where table_name=TAB_NAME;
if TEMP_NUM=0 then
execute immediate 'CREATE TABLE '||TAB_NAME||' ( '||COLUMN_NAME||' varchar2(30))';
else
INSERT INTO TAB_NAME ( COLUMN_NAME ) values ( 'qqq' );
end if;
end CREATE_TABLE;
然后运行存储过程
call CREATE_TABLE('TEST1','TIME1');--表格TEST1已经是存在的
commit;
运行下面的语句,表格test1没有插入数据
select * from test1;
è¿ç§æ åµå±äºæå ¥æ°æ®åï¼æ²¡ææ交ï¼commitï¼ï¼å¯¼è´è¡¨è¢«éï¼æ以éè¦è¿è¡æ交ï¼commitï¼æè åæ»ï¼rollbackï¼æä½ã
å¦æå½åsessionå·²å
³éï¼å¯éè¿å¦ä¸æ¹æ³ææè¿ç¨ã
1ãçæKill Sessionè¯å¥
select 'alter system kill session ''' || SID ||',' || SERIAL# || ''';' from)
2ãæ¹éæ§è¡ç¬¬ä¸æ¥çæçè¯å¥
alter system kill session 'sid,serial#';为什么这里是两个单引号 ''qqq'', 一个单引号不行吗?
追答汗,自己试试不就知道了么
CREATE OR REPLACE PROCEDURE CREATE_TABLE(TAB_NAME IN VARCHAR2,直接就可以看出会出错
两个单引号在动态sql中可以表示一个单引号
本回答被提问者和网友采纳