请教:怎样在sqlplus中批量执行sql文件

[复制链接]
查看11 | 回复9 | 2005-6-2 16:38:45 | 显示全部楼层 |阅读模式
比如我在a.sql中有个语句create table a;
b.sql中有语句craet table b;
在c.sql中写
@a.sql;
@b.sql;
然后在sqlplus中执行@c:\c.sql;
可是报"无法打开文件a.sql和b.sql"
是不是我在c.sql一定要对a.sql和b.sql加绝对路径,但这样就不灵活了呀,请问大家有没好办法?
回复

使用道具 举报

千问 | 2005-6-2 16:38:45 | 显示全部楼层
如果在同一目录下,可以不加绝对路径吧!
回复

使用道具 举报

千问 | 2005-6-2 16:38:45 | 显示全部楼层
我的是在同一目录下,我试过如果加了绝对路径就能执行通过。不加就报找不到文件。
回复

使用道具 举报

千问 | 2005-6-2 16:38:45 | 显示全部楼层
寫成一個過程多好.
回复

使用道具 举报

千问 | 2005-6-2 16:38:45 | 显示全部楼层
@@A.SQL
@@B.SQL
这样写就行了
回复

使用道具 举报

千问 | 2005-6-2 16:38:45 | 显示全部楼层
最初由 windff 发布
[B]@@A.SQL
@@B.SQL
这样写就行了 [/B]

成功了,多谢windff啊




回复

使用道具 举报

千问 | 2005-6-2 16:38:45 | 显示全部楼层


顶顶顶
回复

使用道具 举报

千问 | 2005-6-2 16:38:45 | 显示全部楼层
@c:\c.sql
这样去操作的话,Oracle只是去查你的“SQL*Plus默认目录”中是否存在c.sql文件,这个默认目录你可以这样查看:
SQL> host pwd
-- 然后将你的三个脚本放到上面查到的目录中!再去运行应该就可以了!
回复

使用道具 举报

千问 | 2005-6-2 16:38:45 | 显示全部楼层
嗯,解决了就好, @@表示与宿主脚本在同一个目录!
回复

使用道具 举报

千问 | 2005-6-2 16:38:45 | 显示全部楼层
如果三个文件都是同一个目录下面,修改c.sql为:
@@a.sql
@@b.sql
然后再sqlplus中运行c.sql
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行