Oracle中的批处理命令是什么?(就像SQL中GO一样功能的命令)
我想在PLSQL Developer的SQL window 一次性执行完下列命令:
--创建存储过程,判断表是否存在,如果存在则删除重建
--====================================================
create or replace procedure IfOrElseExists
(
t_name varchar2--注意,这里不能写能varchar2(10)
)
as
local_num number;
local_t_name varchar2(20);
begin
local_num := 0;
local_t_name := upper(t_name);
select count(*) into local_num from tab where tname=local_t_name;
if local_num >0 then
execute immediate 'drop table ' ¦ ¦t_name;
dbms_output.put_line( '表成功删除 ');
else
dbms_output.put_line( '表不存在 ');
end if;
end IfOrElseExists;
--==================================================== --创建User_table表
begin
IfOrElseExists( 'User_table ');
end;
create table User_table(
id number,
name varchar2(20),
logon_name varchar2(20),
pwd varchar(16),
role_id number
);
--为表各列添加注释
comment on column User_table.id is '用户编号 ';
comment on column User_table.name is '用户名 ';
comment on column User_table.Logon_Name is '登陆名 ';
comment on column User_table.pwd is '登陆密码 ';
comment on column User_table.Role_Id is '用户所属的角色 ';
commit; 以上代码单独执行 第一块(建立过程)是成功的,并且可以调用,可是只要和下面的代码一起选中再执行,虽然没有提示出错,可是
IfOrElseExists 过程是无效的.
我想在PLSQL Developer的SQL window 一次性执行完下列命令:
--创建存储过程,判断表是否存在,如果存在则删除重建
--====================================================
create or replace procedure IfOrElseExists
(
t_name varchar2--注意,这里不能写能varchar2(10)
)
as
local_num number;
local_t_name varchar2(20);
begin
local_num := 0;
local_t_name := upper(t_name);
select count(*) into local_num from tab where tname=local_t_name;
if local_num >0 then
execute immediate 'drop table ' ¦ ¦t_name;
dbms_output.put_line( '表成功删除 ');
else
dbms_output.put_line( '表不存在 ');
end if;
end IfOrElseExists;
--==================================================== --创建User_table表
begin
IfOrElseExists( 'User_table ');
end;
create table User_table(
id number,
name varchar2(20),
logon_name varchar2(20),
pwd varchar(16),
role_id number
);
--为表各列添加注释
comment on column User_table.id is '用户编号 ';
comment on column User_table.name is '用户名 ';
comment on column User_table.Logon_Name is '登陆名 ';
comment on column User_table.pwd is '登陆密码 ';
comment on column User_table.Role_Id is '用户所属的角色 ';
commit; 以上代码单独执行 第一块(建立过程)是成功的,并且可以调用,可是只要和下面的代码一起选中再执行,虽然没有提示出错,可是
IfOrElseExists 过程是无效的.
解决方案 »
- sqlserver可以用[]把列名括起来,那么在oracle用什么呢
- 请问怎样解决“ora-04098:触发器 无效且未通过重新验证”这个问题
- 求助ORACLE函数编译的问题
- 再求一个查询办法。
- 刚在 linux 下装好的 oracle 10 g ,登陆后发现需要验证,验证时出现了以下问题?
- to_date的问题急
- 如何判断 是应用程序须改的还是触发器修改的
- 有关数据更新问题(update)
- ORA_00918:column ambigously defined 是什么错误啊
- SQL中的getdate中标准的SQL都支持的函数吗?我在informix中使用不行
- 老生常谈:数据库的导入导出问题
- 访问ORACLE数据库不安装ORACLE客户端的办法。
但是分号也有分号的功能.在PL/SQL语句块中分号是不能少的.不过问题我已经解决了.现在可以全部代码复制到 command window 窗口里运行.谢谢两位
begin
IfOrElseExists( 'User_table ');
end; 改成
execute('User_table');
复制命令到 command window 窗口中可以实现一次性将所有代码执行完毕