我试图读取本地计算机上的一系列模板文件,并将数据放入oracle数据库中的clob列。当文件名是硬连线时,我有一些非常有用的东西:
Declare
v_Template clob:= '
@@MyFolder\MyFilename.txt
';
Begin
--Insert the contents of the file into a Clob column in the database
end;
/
此变量值稍后会插入到表的CLOB列中。
但是当我尝试为文件名设置变量时,v_template的值将填充变量的名称,而不是文件的内容。有没有办法让这个正确解决?例如,
DECLARE
-- the @@ expression must be in separate line as follows
Myfilename varchar(50):='@@MyPath\Template_File.txt';
file_contents VARCHAR2(32767):='
&&MyFileName
';
Begin
insert into MyTAble (template_definition)
values(file_contents);
commit;
end;
答案 0 :(得分:0)
你需要像在第一个例子中那样单独在一条线上进行双重符号。
set serveroutput on
Declare
file_contents VARCHAR2(32767) := '
@@c:\temp\efs.txt
';
BEGIN
dbms_output.put_line('===');
dbms_output.put_line(file_contents);
dbms_output.put_line('===');
END;
/
===
this is
a test
===
PL/SQL procedure successfully completed.
SQL>