当前位置: 代码迷 >> Oracle管理 >> dbms_xdb.CreateFolder/DBMS_XDB.createResource 使用問題解决方法
  详细解决方案

dbms_xdb.CreateFolder/DBMS_XDB.createResource 使用問題解决方法

热度:179   发布时间:2016-04-24 04:11:10.0
dbms_xdb.CreateFolder/DBMS_XDB.createResource 使用問題
您好:
我見一個帳號 AAA 有SYSDBA 權限

1.我使用

declare
   v_return boolean;
begin
   v_return := dbms_xdb.CreateFolder(abspath => 'D:\o11\usr');
commit;
end;
/

-->顯示OK

2.再用

set serveroutput on
declare
   v_return boolean;
begin
   if dbms_xdb.isFolder(abspath => 'D:\o11\usr') then
      dbms_output.put_line(a => 'Is a folder or container!');
   else
      dbms_output.put_line(a => 'Is not a folder or container!');
   end if;
end;
/

結果顯示
ORA-31001: 無效的資源處理或路徑名稱 "D:\o11\usr"
ORA-06512: 在 "XDB.DBMS_XDB", line 1235
ORA-06512: 在 line 4

另外
3.使用DBMS_XDB.createResource

DECLARE
  res BOOLEAN;
  empsxmlstring VARCHAR2(300):= 
    '<?xml version="1.0"?>
     <emps>
       <emp empno="1" deptno="10" ename="John" salary="21000"/>
       <emp empno="2" deptno="10" ename="Jack" salary="310000"/>
       <emp empno="3" deptno="20" ename="Jill" salary="100001"/>
     </emps>';
BEGIN
  res := DBMS_XDB.createResource('D:\o11\emps.xml',   empsxmlstring);  
  
  if res THEN
      DBMS_OUTPUT.PUT_LINE('---OK--');  
  ELSE
      DBMS_OUTPUT.PUT_LINE('---NG--');  
  END IF; 
END

==>NG
 請問這還要設定什麼嗎?
謝謝!
------解决思路----------------------
我记得这个只是在oracle中注册了一下路径,实际的文件夹还是要自行创建的
  相关解决方案