跪求create or replace directory image as 'E:\a';

longjiu2009 2010-01-16 01:26:54
高手们,求救啊!
以system/admin登录数据库,

连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> create or replace directory image as 'E:\d';

目录已创建。

SQL> @li.sql;
SP2-0310: 无法打开文件 "li.sql"
SQL> @E:\d\li.sql;

用户已创建。

SQL>


E:\d 目录下有一个文件li.sql,内容为create user li;

请问为什么啊,我都要疯了,本人装的Oracle 10.2
...全文
205 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
longjiu2009 2010-01-19
  • 打赏
  • 举报
回复
http://www.oracle.com/technology/global/cn/obe/11gr1_db/datamgmt/dicom/dicom.htm

为请看这个例子,是不是我的第一种种用法!
huangyunzeng2008 2010-01-17
  • 打赏
  • 举报
回复
你误解了directory的用法!
Dave 2010-01-16
  • 打赏
  • 举报
回复

SQL> create or replace directory image as 'E:\d';
目录已创建。
SQL> @li.sql;
SP2-0310: 无法打开文件 "li.sql"
SQL> @E:\d\li.sql;


楼主的想法很奇怪. 你是创建了一个image的directory,但是你没有调用它。 我们可以创建多个directory, 如果不指定,是会乱的。
所以如果你要读一个文件,可以用3楼的方法,或者就写全整个物理路径。

在数据泵里也会用到目录,在导出导入的时候,我们指定了directory名称,那么生成的文件就会在那个目录下面。




------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
Q Q 群:62697716
longjiu2009 2010-01-16
  • 打赏
  • 举报
回复
应该可以用来执行SQL的,你想一个文件都打不开,怎么关联到目录里的其他东西呢?、例如读取目录底下里面的图片等等呢
crazylaa 2010-01-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 longjiu2009 的回复:]
应该可以用来执行SQL的,你想一个文件都打不开,怎么关联到目录里的其他东西呢?、例如读取目录底下里面的图片等等呢
[/Quote]
你这是想执行这个目录里面的文件啊。。。rwx,rw跟x可不一样吧?
duqiangcise 2010-01-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 longjiu2009 的回复:]
高手们,求救啊!
    以system/admin登录数据库,

 连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> create or replace directory image as 'E:\d';

目录已创建。

SQL> @li.sql;
SP2-0310: 无法打开文件 "li.sql"
SQL> @E:\d\li.sql;

用户已创建。

SQL>

E:\d 目录下有一个文件li.sql,内容为create user li;

请问为什么啊,我都要疯了,本人装的Oracle 10.2
[/Quote]
oracle中创建的目录应该不是这样使用的吧!!
你应该在pl/sql中这样使用directory。
fhandle := utl_file.fopen('UTL_FILE_DIR', p_fname, 'w');
向这样在你创建的directory中创建文件,读写文件等一系列操作。
比如你读image目录下的文件li.sql:
fhandle utl_file.file_type;
v_var varchar2(2000);
fhandle := utl_file.fopen('image', 'li.sql', 'r');
utl_file.put_line(fhandle,v_var);
dbms_output.put_line(v_var);--打印文件中的内容
crazylaa 2010-01-16
  • 打赏
  • 举报
回复
貌似这个不是给你用来执行sql的,而是用来关联外部表或者大字段的一个路径吧?

不懂了。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧