Plsql 在pl sql中执行创建目录命令时执行立即错误
执行上述代码时,会抛出以下错误: 第1行错误: ORA-01780:需要字符串文字 ORA-06512:databasename.WRITEDATA第7行 ORA-06512:在第1行 使用以下命令:Plsql 在pl sql中执行创建目录命令时执行立即错误,plsql,Plsql,执行上述代码时,会抛出以下错误: 第1行错误: ORA-01780:需要字符串文字 ORA-06512:databasename.WRITEDATA第7行 ORA-06512:在第1行 使用以下命令: execute immediate 'CREATE or replace DIRECTORY user_dir AS' ||'"C:\proc"'; 这将在安装oracle的服务器上创建目录,而不是在您的计算机驱动器上 declare a varchar2(100); b
execute immediate 'CREATE or replace DIRECTORY user_dir AS' ||'"C:\proc"';
这将在安装oracle的服务器上创建目录,而不是在您的计算机驱动器上
declare
a varchar2(100);
begin
a:= q'[CREATE OR REPLACE DIRECTORY g_vid_lib AS '/video/library/g_rated']';
execute immediate a;
end;
在你的情况下,它是这样的:
SQL> select * from dba_directories where lower(directory_name) = 'g_vid_lib';
OWNER DIRECTORY_NAME DIRECTORY_PATH
------------------------------ ------------------------------
SYS G_VID_LIB /video/library/g_rated
我们应该做到这一点。“立即执行”需要位于开始/结束块内,并注意作为转义字符所需的单引号。如果在此处赋值,则会出现错误“需要字符串文字”。但也可以使用路径。。检查我的最新声明,
declare
a varchar2(100);
begin
a:= q'[CREATE OR REPLACE DIRECTORY g_vid_lib AS 'C:\procedure']';
execute immediate a;
end;
BEGIN
EXECUTE IMMEDIATE 'CREATE OR REPLACE DIRECTORY user_dir AS ''C:\proc''';
END;