繁体   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