d:\test.sql脚本如下:
[sql] view plain
select &1 from &2;
exit;
执行时这样传参数:sqlplus "scott/tiger@test" @d:\test.sql sysdate al
注意:参数必须用&[1-9]表示,不然传不进去,会提示让手动输入参数
[sql] view plain
C:\>sqlplus "scott/tiger@test" @d:\test.sql sysdate al
D:\>sqlplus "scott/tiger@test" @d:\test.sql sysdate al
SQL*Plus: Release 11.2.0.1.0 Proction on 星期二 11月 1 21:59:00 2011
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Proction
With the Partitioning, OLAP, Data Mining and Real Application Testing options
原值 1: select &1 from &2
新值 1: select sysdate from al
SYSDATE
--------------
01-11月-11
从 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Proction
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断
开
D:\>
如果脚本中有重复用到相同的值,如果&1=&2:
d:\tes2.sql
[sql] view plain
delete scott.emp where no=&1 or deptno=&2;
commit;
执行时,就必须传2个参数:
[sql] view plain
sqlplus "scott/tiger@test" @d:\test2.sql 10 10
小窍门: 这时用procere就可以不用传多个相同的参数,则只用传1个参数:
d:\test3.sql
[sql] view plain
declare
var_no number:=&1;
begin
delete scott.emp where no=var_no or deptno=var_no;
commit;
end;
sqlplus "scott/tiger@test" @d:\test3.sql 10
❷ 如何查看sqlplus执行的语句
如何查看sqlplus执行的语句
oracle 10g的DBMS_XPLAN包中display_cursor函数不同于display函数,display_cursor用于显示SQL语句的真实的执行计划,在大多数情况下,
显示真实的执行计划有助于更好的分析SQL语句的全过程,尤其是运行此SQL语句实时的I/O开销。通过对比预估的I/O与真实的I/O开销来判断
SQL语句所存在问题,如缺少统计信息,SQL语句执行的次数,根据实际中间结果集的大小来选择合适的连接方式等。本文仅仅讲述
❸ oracle sqlplus导入数据脚本 如何输出日志
日志会在sqlplus里打出来,如果你想打到一个文件里的话,你可以试试这种方法,打开CMD,输入 sqlplus -s scott/tiger@orcl @d:\test.sql > d:\out.log,具体内容根据你情况修改。
❹ 如何才能让sqlplus在执行脚本时显示执行的代码
有三种方法: 1.建一个login.sql或者修改glogin,sql 但是你没权限所以 算了。 2.设置一个环境变量SQLPATH 这个环境变量指向你的脚本。 3.把你要跑的脚本放入你dos窗口的启动路径下,就是敲完cmd 后 出来的窗口的最初的路径。
❺ 如何察看sqlplus中的历史命令
如何察看sqlplus中的历史命令
windows 环境下用方向键上下来查看,
linux 下用rlwrap 包装
单纯查执行过的sql 可以查V$sql 和v$sqlarea
❻ 如何通过sql*plus查看现有的数据库
觉得你应该先弄清楚oracle的常规数据字典的结构,像9i里的常规数据字典中对象名称就有以USER,ALL,DBA为前缀的对象。
以USER为例,我们查该对象下有些什么表,就应该执行下列的语句:
SQL>select table_name from user_tables;
类似的,你可以进行替换。:)
如果你想查数据库中所有的表的话,可以查询
SELECT * FROM dba_tables
如果你想查询数据库中某个用户下的表的话,也可以登录这个用户,再查询:
SELECT * FROM USER_TABLES
要想导入外部sql语句可以用命令
sql >@e:\文件名.sql
如你想保存 select * from tablename;语句的结果,可以在sql*plus 里面这样:
SPOOL c:\test.sql //这是保存文件的位置
select * from tablename;
SPOOL OFF
❼ 怎样用sqlplus调用shell脚本
参考如下:
#Oracle Connection
export ORACLECONNECTSTRING='dps/password@frld world'
sqlplus -silent $ORACLECONNECTSTRING @$SQLDIR/ipb_dps_get_status.sql
ipb_dps_get_status.sql 是放在SQLDIR文件夹下的.sqlfile,把sql语句写在里面就可以了
或者后面还可以加上log等。
❽ 如何让sql语句在oracle后台运行,怎么查看后台运行的程序,谢谢
sql要在后台运行的的话你只有写shell脚本了:
sqlplus username/password@orcl <<!
select xxxxxxx --这里填你想要执行的语句
exit
!
(在数据库本地执行的时候可以不带连接串,直接用sqlplus username/password <<! 即可)
编写完脚本后在操作系统下执行:
nohup ./mysql.sh & 或者 ./mysql.sh &
(这里暂定你的shell脚本名是mysql.sh可以自己改)
使用jobs命令就可查看你后台运行的程序。或者使用 ps -ef|grep mysql.sh 也能看到。
当然了使用了nohup参数后在当前目录会生成nohup.out的输出文件,你也可以在这个文件中查看脚本执行的进度。
❾ sqlplus 怎么查看表的数据文件
查看数据库中现有的表或对象: 1、 SELECT * FROM CAT ; 2、 select * from tab ; 3、 select * from dba_objects ;
❿ 如何查询oracle的sqlplus
如何查询oracle的sqlplus
前提条件是查询的用户必须有dba权限。可以用的语句是:
1
select * from all_users;
sqlplus使用方法:
1、win键+R键,进入命令提示符:
2、命令提示符中输入“sqlplus 用户名/密码@实例名”(不含引号):
3、输入查询的语句,“select * from all_users;”(不含引号,但分号不能省略),然后按回车键,就会显示执行结果