我正在使用SQL Developer假脱机一些包的DDL,但我无法确定服务器假脱机的位置。Oracle安装在AIX上,但我不知道它使用哪个用户连接到操作系统。
基本上,当我跑步的时候:
spool test.lst
select 1 from dual;
spool off
我在控制台中收到确认消息
而且,每当我尝试提供路径时,都会收到一个错误,可能是因为用户权限:
spool /tmp/test.lst
select 1 from dual;
spool off
Cannot create SPOOL file /tmp/test.lst
1
----------------------
1
所以我的问题是Test.lst在哪里?
3条答案
按热度按时间lmyy7pcs1#
后台打印是一个客户端活动,而不是服务器活动;
.lst
文件将在SQL Developer所在的计算机上创建,而不是在它连接到的数据库所在的服务器上创建。在Windows 7和SQL Developer 3.1中,默认情况下,我似乎将
.lst
存储在%APPDATA%\Sql Developer\
中您可以假脱机到特定的目录,例如
spool c:\windows\temp\test.lst
,如果您设置了它,可以使用类似spool \\<aix-server>\<dir>\test.lst
的内容。当然,路径会因您的客户端操作系统而异。bihw5rsg2#
在我的Linux安装下,默认的假脱机目录是您运行sqlplus的目录。也就是说。如果从您没有写入权限的目录运行sqlplus,它将失败。
试着输入“!”或在SQLplus提示符下输入“host”以转到操作系统。Pwd目录的结尾位置,我猜这是您的假脱机的位置。
(键入Exit可返回到Sqlplus)
kxeu7u2r3#
另一个人所说的默认位置对于oracle10g来说是正确的,但由于我使用的是最新的oracle21c(在撰写本文时),下面是对我有效的解决方案。
假设您创建了一个假脱机文件:
spool on;``spool tempfile;
,则默认位置将位于安装Oracle数据库软件的位置,在我的示例中为D:\WINDOWS.X64_213000_db_home\bin
然后在
Bin文件夹该文件将被创建为
tempfile.LST
,要打开.lst文件,只需使用默认记事本或任何类似的编辑器来打开输出然而,我有一个更好的建议:在这里输入
spool on;``SPOOL C:/path/xyz.txt;
#更改您的目录、查询文件的路径名和文件名,最重要的是不要忘记在查询的末尾键入spool off。如果您忘记了,那么您的文件将不会被创建,并且您将丢失保存的输出的所有进度。让我给你另一个*专业技巧:*那就是不要写相同的假脱机文件名,否则它将被覆盖