关于oracle的sqlplus的另一些小技巧

简介: 执行脚本的命令在上一节已经讲过,不再重复。 sqlplus user/password@ip:port/servicename @/path/sqltest.sql; sqltest的内容及注释: --这个WHENEVER表示出现错误之后,不再继续执行,还会尽量回滚 WHENEVER SQLERROR EXIT SQL.

执行脚本的命令在上一节已经讲过,不再重复。

 sqlplus user/password@ip:port/servicename @/path/sqltest.sql;

sqltest的内容及注释:

--这个WHENEVER表示出现错误之后,不再继续执行,还会尽量回滚
WHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK
--select 'OK' from duabbl;
--select 'OK' from duiaaal;
--输出执行的语句
set echo on;
--将执行结果输出到文件
spool /tmp/spool.txt;
select 'OK' from dual;
--建立一个空的无害的存储过程
create or replace procedure ADisabledSP(timeStamp number,  
tableName varchar2) is  
begin  
if timeStamp<0 then --该条件永远无法成立,且使用了输入参数timeStamp  
dbms_output.put_line('We are going to operate on table ' || tableName); --使用了输入参数tableName  
end if;  
end;
--这个/在命令行中执行是必须的,表示执行,不然,只有换行
/  
select 'OK' from dual;
select 'OK' from dzual;
--dual数据库常用于测试目的
select 'OK' from dual;
spool off;
--这个也必须,不然,脚本执行完成之后,会hang在sqlplus命令行中,不退出
exit;

查看存储过程的几个SQL,注意有的显示一行一行的,有的显示名字,有的显示内容:

select name from user_source where type='PROCEDURE';
select text from all_source where name = 'pro_name';
select * from user_procedures;

  

最后一个小技巧,为什么在的脚本里,会出现一个/右斜杠呢?????

一般在end;(注意有分号)后加反斜杠/,代表是要执行某个存储过程,如果没有反斜杠,则代表是普通换行。这种情况一般用于oracle中的命令窗口。

https://zhidao.baidu.com/question/560015241204373364.html

目录
相关文章
|
4月前
|
SQL Oracle 关系型数据库
[已解决]使用sqlplus连接oracle,提示ORA-01034和ORA-27101
[已解决]使用sqlplus连接oracle,提示ORA-01034和ORA-27101
55 0
|
3月前
|
Oracle 关系型数据库
【Oracle】sqlplus 复制数据文件时出现拒绝访问
【Oracle】sqlplus 复制数据文件时出现拒绝访问
|
6月前
|
SQL Oracle 关系型数据库
Oracle数据库sqlplus命令行执行sql语句时,语句有中文报错解决
Oracle数据库sqlplus命令行执行sql语句时,语句有中文报错解决
|
6月前
|
SQL Oracle 关系型数据库
导出Oracle数据库sqlplus命令行查询的结果到文件
导出Oracle数据库sqlplus命令行查询的结果到文件
123 0
|
Oracle 关系型数据库 数据库
Oracle的服务器端和客户端同时安装Sqlplus无法登陆的处理
Oracle的服务器端和客户端同时安装Sqlplus无法登陆的处理
150 0
Oracle的服务器端和客户端同时安装Sqlplus无法登陆的处理
|
SQL Oracle 关系型数据库
Oracle SQLcl - 替代 sqlplus 的利器
对于从事 Oracle 技术开发的同学,肯定都要连接 Oracle 数据库,而 Oracle 自带的 sqlplus 命令行工具功能太弱了,不支持命令联想、数据显示不美观,还要安装什么 Oracle Client,导致很多同学不得不用其他工具(PL/SQL Developer、Oracle SQL Developer)来连接数据库。
5262 0
|
SQL Oracle 关系型数据库