While executing oracle alter query getting error : ORA-01756: quoted string not properly terminated

While executing oracle alter query getting error : ORA-01756: quoted string not properly terminated

我试图在我的 .sql 文件中执行以下查询并收到错误:

quoted string not properly terminated

execute immediate 'alter tablespace '||tname||' add datafile '''||file_name||lname||ext||''' size '||add_space||'m autoextend off maxsize 30720m';

新代码:

set serveroutput on;
set linesize 200
set head off;
set feedback off;
DECLARE
chr integer(12);
tname varchar (50):='${​​​i}​​​';  # Value I am getting from linux
file_name varchar (500);
add_space integer(10):=${​​​fiftin_per}​​​;
m_point varchar(200):=$mount_name;
var varchar(10):='/';
stamp varchar(50):='$random_val';
ext varchar:='.dbf'

BEGIN

file_name:=m_point||var||tname||stamp||ext;

dbms_output.put_line(file_name);  

#op : \oradata\data\test14_7_2021.dbf

dbms_output.put_line('alter tablespace '||tname||' add datafile '||file_name||' size '||add_space||'m autoextend off'); 

#op : alter tablespace test add datafile \oradata\data\test14_7_2021.dbf size 302m autoextend off

dbms_output.put_line('alter tablespace '||tname||' add datafile "'||file_name||'" size '||add_space||'m autoextend off');

#op :alter tablespace test add " datafile \oradata\data\test14_7_2021.dbf" size 302m autoextend off

dbms_output.put_line('alter tablespace '||tname||' add datafile '''||file_name||''' size '||add_space||'m autoextend off');

#op :alter tablespace test add datafile ' \oradata\data\test14_7_2021.dbf' size 302m autoextend off


END;
/

我尝试了三种不同的方式来打印该命令并给出了文件的输出,请提出建议。

我已经使用下面的方法解决了我的问题 code:I 修剪了 linux 中的文件名,然后将该值传递给了 oracle:

var='/'
random_val=`date +"%d_%m_%y"_"%H"_"%M"_"%S"`
ex=".dbf";
fname="$mount_name$var${i}$random_val$ex"
ac=`echo -e "${fname}" | tr -d '[:space:]'`   # Trimmed filename
echo $ac
output3=`sqlplus -s usr/usr as sysbackup <<END2
set serveroutput on;
set linesize 200
set head off;
set feedback off;
DECLARE
tname varchar (50):='${i}';
file_name varchar (500):='$ac';
add_space integer(10):=${fiftin_per};

BEGIN
dbms_output.put_line('alter tablespace '||tname||' add datafile '''||file_name||''' size '||add_space||'m autoextend off');
#op: alter tablespace test add datafile /oradata1/data/test12345.dbf size 1208m autoextend off;

dbms_output.put_line('We have added :'||file_name);
#op: We have added/oradata1/data/test12345.dbf 
END;
/
exit;
END2`