[英]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.