簡體   English   中英

無法在Oracle 12c中創建目錄

[英]Unable to create directory in oracle 12c

我正在使用Oracle 12.2。我希望導入數據泵文件。 為此,我希望創建一個包含文件的目錄,然后導入。 我使用以下命令創建目錄

CREATE DIRECTORY dpump_dir1 AS  ‘D:\dumpdir’;

我收到錯誤信息

SQL錯誤:ORA-00911:無效字符00911。00000-“無效字符” *原因:標識符不能以字母和數字以外的任何ASCII字符開頭。 $#_也允許在第一個字符之后。 用雙引號引起來的標識符可以包含除雙引號以外的任何字符。 替代引號(q'#...#')不能使用空格,制表符或回車符作為分隔符。 對於所有其他上下文,請查閱《 SQL語言參考手冊》。 有人可以告訴我出什么事了嗎?

您提供的代碼中使用的引號不是簡單的單引號。 格式化為代碼時,稍微容易看到:

CREATE DIRECTORY dpump_dir1 AS  ‘D:\dumpdir’;

您還可以使用文本編輯器或轉儲字符串以查看其中包含哪些字符:

select dump(q'[CREATE DIRECTORY dpump_dir1 AS  ‘D:\dumpdir’;]', 1016) from dual;

DUMP(Q'[CREATEDIRECTORYDPUMP_DIR1AS‘D:\DUMPDIR’;]',1016)                                                                                                                               
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Typ=96 Len=49 CharacterSet=AL32UTF8: 43,52,45,41,54,45,20,44,49,52,45,43,54,4f,52,59,20,64,70,75,6d,70,5f,64,69,72,31,20,41,53,20,20,e2,80,98,44,3a,5c,64,75,6d,70,64,69,72,e2,80,99,3b

您可以看到它報告為49個字節,盡管長度為45個字符,表示您有多字節字符。 在決賽前的分號 ,其顯示為3b ,你有序列e2,80,99它代表'正確的單引號 ,並且早一點你有序列e2,80,98代表'左單引號

如果使用普通引號,則應該可以使用:

CREATE DIRECTORY dpump_dir1 AS  'D:\dumpdir';

大概是您從編輯器復制並粘貼了文本,該編輯器有用地替換了彎引號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM