SQLPlus 无法执行SQL脚本

时间:2021-11-11 02:44:42
我在D盘建了一个create.sql在sqlplus中执行@D:/create.sql,怎么老提示无法打开文件D:\create.sql,把文件拷到oracle_home/bin下也无法执行,拷到rdbms/admin下也是一样的提示,到底怎么回事啊 ?

8 个解决方案

#1


请把完整的执行过程、报错信息贴出来,方便大家分析。

#2


你确认你的文件名是create.sql

是否用记事本创建的?
文件名有可能是create.sql.txt

取消如下选项查看一下
资源管理器 菜单->工具->文件夹选项->查看->隐藏已知文件类型的扩展名

#3


sql文件中的内容:
select * from mw_App.mwt_gradeinfo;

SQL> conn mw_app/app@server
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 
Connected as mw_app
SQL> @D:/create.sql;
 
STUNAME              SUBJECT                                              GRADE
-------------------- -------------------------------------------------- -------
***               大学物理2                                            90.00

测试没问题
把你sql文件中的内容贴出来

#4


难道是文件名弄错了?

再测试下其他的SQL文件脚本

#5


引用 2 楼 tangren 的回复:
你确认你的文件名是create.sql

是否用记事本创建的?
文件名有可能是create.sql.txt

取消如下选项查看一下
资源管理器 菜单->工具->文件夹选项->查看->隐藏已知文件类型的扩展名

ding

#6


引用 5 楼 xumeng929 的回复:
引用 2 楼 tangren 的回复:
你确认你的文件名是create.sql

是否用记事本创建的?
文件名有可能是create.sql.txt

取消如下选项查看一下
资源管理器 菜单->工具->文件夹选项->查看->隐藏已知文件类型的扩展名

ding

我猜也是这个问题

#7


引用 6 楼 mingchaoyan 的回复:
引用 5 楼 xumeng929 的回复:

引用 2 楼 tangren 的回复:
你确认你的文件名是create.sql

是否用记事本创建的?
文件名有可能是create.sql.txt

取消如下选项查看一下
资源管理器 菜单->工具->文件夹选项->查看->隐藏已知文件类型的扩展名

ding

我猜也是这个问题
这种可能性很大

#8



declare va int:=0;
begin 
  while va<10 loop
  insert into tab_name values(va,'aaa');
  va:=va+1;
  end loop;
end;


这种为什么执行不了呢?

select * from tab_name;

就可以执行,包括insert语句等这种单一句式的都可以执行,存储过程脚本的就不行了

#1


请把完整的执行过程、报错信息贴出来,方便大家分析。

#2


你确认你的文件名是create.sql

是否用记事本创建的?
文件名有可能是create.sql.txt

取消如下选项查看一下
资源管理器 菜单->工具->文件夹选项->查看->隐藏已知文件类型的扩展名

#3


sql文件中的内容:
select * from mw_App.mwt_gradeinfo;

SQL> conn mw_app/app@server
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 
Connected as mw_app
SQL> @D:/create.sql;
 
STUNAME              SUBJECT                                              GRADE
-------------------- -------------------------------------------------- -------
***               大学物理2                                            90.00

测试没问题
把你sql文件中的内容贴出来

#4


难道是文件名弄错了?

再测试下其他的SQL文件脚本

#5


引用 2 楼 tangren 的回复:
你确认你的文件名是create.sql

是否用记事本创建的?
文件名有可能是create.sql.txt

取消如下选项查看一下
资源管理器 菜单->工具->文件夹选项->查看->隐藏已知文件类型的扩展名

ding

#6


引用 5 楼 xumeng929 的回复:
引用 2 楼 tangren 的回复:
你确认你的文件名是create.sql

是否用记事本创建的?
文件名有可能是create.sql.txt

取消如下选项查看一下
资源管理器 菜单->工具->文件夹选项->查看->隐藏已知文件类型的扩展名

ding

我猜也是这个问题

#7


引用 6 楼 mingchaoyan 的回复:
引用 5 楼 xumeng929 的回复:

引用 2 楼 tangren 的回复:
你确认你的文件名是create.sql

是否用记事本创建的?
文件名有可能是create.sql.txt

取消如下选项查看一下
资源管理器 菜单->工具->文件夹选项->查看->隐藏已知文件类型的扩展名

ding

我猜也是这个问题
这种可能性很大

#8



declare va int:=0;
begin 
  while va<10 loop
  insert into tab_name values(va,'aaa');
  va:=va+1;
  end loop;
end;


这种为什么执行不了呢?

select * from tab_name;

就可以执行,包括insert语句等这种单一句式的都可以执行,存储过程脚本的就不行了