Oracle执行外部文件:
创新互联是专业的环翠网站建设公司,环翠接单;提供成都做网站、成都网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行环翠网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
c:sqlplus
user/pwd@db
sql@new.sql
执行多个sql文件:
1.把所有的文件都放在同一个目录下,然后在命令行里执行命令:
c:dir/b
d:/1.sql
会把所有的sql文件名都输出到一个sql文件中。
2.用UltraEdit打开生成的sql文件,alt+C切换到column
mode,给所有的行前都添加一个"@",保存。
3.在sqlplus中执行"@d:/1.sql"
如何避免''字符:
sql中可以传递参数,但有时需要插入'',例:
SQL
select
'hello'
v
from
dual;
输入
hello
的值:
hello
原值
1:
select
'hello'
v
from
dual
新值
1:
select
'hello'
v
from
dual
v
-----
hello
可以使用如下方法避免:
A:
SQL
select
chr(38)
||
'hello'
v
from
dual;
V
------
hello
B:
SQL
set
define
off
SQL
select
'hello'
v
from
dual;
V
------
hello
Oracle RDBMS执行每一条SQL语句,都必须经过Oracle优化器的评估。所以,了解优化器是如何选择(搜索)路径以及索引是如何被使用的,对优化SQL语句有很大的帮助。Explain可以用来迅速方便地查出对于给定SQL语句中的查询数据是如何得到的即搜索路径(我们通常称为Access Path)。从而使我们选择最优的查询方式达到最大的优化效果。
1.1 、安 装
要使用EXPLAIN首先要执行相应的脚本,创建出Explain_plan表。
具体脚本执行如下:
$ORACLE_HOME/rdbms/admin/utlxplan.sql (UNIX) 该脚本后会生成一个表这个程序会创建一个名为plan_table的表。
1.2 、使用
常规使用语法:
explainPLAN[SETSTATEMENT_ID[=]stringliteral][INTOtable_name]
FORsql_statement其中:STATEMENT_ID:是一个唯一的字符串,把当前执行计划与存储在同一PLAN中的其它执行计划区别开来。
TABLE_NAME:是plan表名,它结构如前所示,你可以任意设定这个名称。
SQL_STATEMENT:是真正的SQL语句。
比如:SQLexplainplansetstatement_id='T_TEST'forselect*fromt_test;SQLExplained
执行下面语句可以查询到执行计划
方法如下:
1:运行cmd进入命令行界面
2:进入到存放批量sql的文件夹下面
3:输入命令
sqlplus
数据库名/密码@数据库
按回车键
4:输入spool
指定路径:\a.log
按回车键
(此步骤的主要作用就是追踪批量执行sql的日志,路径随便写,只要能找到就行,a.log可以随便起名,但是必须要.log后缀)
5:@start.sql
按回车键(在批量sql文件夹下写一个文件,名字叫start.sql,其中在这个文件里面写批量sql的文件名)
具体格式如下:@@sql的文件名.sql;
@@sql的文件名2.sql;
6:spool
off
(此时a.log中所有日志已经写入完毕)
7:exit
退出sqlplus
当然只有一个sql文件,但是里面有多个insert语句,数据量非常大,此时也可以在命令状态下执行,前4步是一样的,第五步就是@文件名.sql;