2011-12-27 65 views
0

我正在使用JDBC在数据库中创建一个目录对象。在Oracle 11g中使用相对路径创建目录对象

即将目录“dir”创建或替换为'c:\ temp';

我的问题是:

  1. 我要传递的路径在运行时
  2. 或者至少指定相对于当前的一个路径。我的意思是:创建或替换“dir”为'./../tempdir'

有没有办法做到这一点,或者是指定绝对路径的唯一出路。

+1

为什么你想要相对路径?你确定你知道他们会有什么关系吗? “当前路径”是什么意思?这些是数据库服务器上的文件路径,不受您运行客户端的位置的影响。 – Thilo 2011-12-27 07:31:04

+0

我正在使用Oracle捕获并在我的App.By相对路径中重放,我的意思是生成的捕获文件存储在App文件夹内的目录中。通过,当前路径我的意思是我的.java文件的路径,我正在写“创建目录”语句 – Ravi 2011-12-27 07:50:41

+1

由于非常合理的原因,Oracle不允许动态操作DIRECTORY对象。通过阅读我对另一个SO线程的回应,获取完整的瘦身:http://stackoverflow.com/questions/8147756/make-directory-part-dynamic-in-call-to-bfilename-function-in-oracle-10g/8149548 #8149548 – APC 2011-12-27 09:38:47

回答

1

Oracle Doc

路径名指定全路径名操作系统目录下的文件所在的服务器的 的

我认为这是因为没有“当前目录”这样的东西。 (你在数据库中,而不是命令行:))

你可以发布一个问题与你的问题,你会从社区获得帮助。

+3

也注意:*在服务器上* – Thilo 2011-12-27 07:58:05

+0

请注意,您可以使用相对路径,相对于由'DIRECTORY'指定的绝对路径。当你使用'BFILE'定位符='DIRECTORY' +相对路径时,就是这种情况。 – lkuty 2011-12-29 14:40:26

+0

你有没有试过? [here](http://docs.oracle.com/cd/B14117_01/server.101/b10759/functions011.htm#i76871)表示应该是Directory +文件名 – 2011-12-29 14:47:08