Oracle执行外部文件:
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、成都网站制作、大姚网络推广、微信小程序开发、大姚网络营销、大姚企业策划、大姚品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供大姚建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
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
1.在SQL*PLUS下按回车不行是因为你在SQL语句结束时没有以;(分号)结尾,以分号结尾再按回车就可以了
2.如果常用的话,建议使用PL/SQL Developer,功能强,易使用
Oracle可以使用SQL Plus进行执行,但是可视化不够,建议使用另外一个查询辅助工具PLSQL Developer,使用PLSQL Developer工具里面各种可视化都很好看出查询出数据的结果以及可以用这个工具分析SQL的执行分析。
可以使用
execute
immediate
--FYI
--execute
immediate不支持多行返回,如果需要可新建临时表
declare
v_source_sql
varchar2(1000);
v_union_sql
varchar2(1000);
begin
select
column_name
into
v_source_sql
from
table_name
;--get
source
sql
v_union_sql='select
*
from
tablename2,('||v_source_sql
||')
h
where
......';--sql
str
--
之前先创建好所需字段的temp_table
execute
immediate('insert
into
temp_table
'||v_union_sql
);
--在临时表中就是你所需要的数据。
exception
......
--如果只是需要返回单行数据,则可将execute
immediate嵌入在sql中使用
--execute
immediate
str
into
parameter1
,parmeter2...--返回参数
where
column=:parameter....条件参数
--
-我说的很仔细吧:)
今天心情好
end;
1.在sql*plus下按回车不行是因为你在sql语句结束时没有以;(分号)结尾,以分号结尾再按回车就可以了
2.如果常用的话,建议使用pl/sql
developer,功能强,易使用