Error: SyntaxError: JSON.parse Error: Invalid character at position:1 in pl/sql
Error: SyntaxError: JSON.parse Error: Invalid character at position:1 in pl/sql
我收到此错误:
Error: SyntaxError: JSON.parse Error: Invalid character at position:1
在提交页面期间 oracle apex5.2
中执行以下代码,
下面的代码用于使用 oracle apex
中的 pl/sql
下载文件。
我创建了一个按钮;当我们单击该按钮时,下面的代码将执行并提交页面。
Declare
dest_loc11 BLOB := empty_blob();
dest_loc BLOB := empty_blob();
dest_loc2 BLOB := empty_blob();
dest_loc3 BLOB := empty_blob();
dest_loc4 BLOB := empty_blob();
dest_loc5 BLOB := empty_blob();
dest_loc6 BLOB := empty_blob();
src_loc BLOB := empty_blob();
l_zip_file blob;
v_length integer;
v_inp varchar2(32767);
v_count number;
n number:=1;
v_pr1_idx number;
v_pr1_idx2 number;
V_ID NUMBER;
v_pr_1 varchar2(32767):='130614';
V_RES VARCHAR2(32767);
V_PRINT VARCHAR2(32767):='';
V_PROMPT VARCHAR2(32767);
V_PRINT_RAW BLOB;
csv_file utl_file.file_type;
V_NO_DATA varchar2(32767);
v_pr_11 varchar2(32767);
BEGIN
DBMS_LOB.CREATETEMPORARY(
lob_loc => dest_loc11,
cache => true,
dur => dbms_lob.session
);
DBMS_LOB.OPEN(dest_loc11, DBMS_LOB.LOB_READWRITE);
V_PRINT:='udfhsdhgfszhduhjsdzvcjhzxjcvhzxc';
V_PRINT_RAW := utl_raw.cast_to_raw( V_PRINT );
v_length := dbms_lob.getlength(V_PRINT_RAW);
DBMS_LOB.WRITEAPPEND (
lob_loc => dest_loc11,
amount => v_length,
buffer => V_PRINT_RAW);
DBMS_LOB.CLOSE(dest_loc11);
sys.htp.init;
sys.owa_util.mime_header( 'text/plain', FALSE );
sys.htp.p('Content-length: ' || sys.dbms_lob.getlength( dest_loc11));
sys.htp.p('Content-Disposition: attachment; filename="' ||'bala.sql' || '"' );
sys.htp.p('Cache-Control: max-age=3600');-- tell the browser to cache for one hour, adjust as necessary
sys.owa_util.http_header_close;
sys.wpg_docload.download_file( dest_loc11);
DBMS_LOB.FREETEMPORARY (dest_loc11);
apex_application.stop_apex_engine;
end;
听起来您有一个 PL/SQL 动态操作,它会在单击按钮时触发,然后下载您的文件?不,您不能通过 Ajax.
下载文件
Download a file by jQuery.Ajax
您需要做的是将用户重定向到不同的页面,或者返回到具有不同 REQUEST
值的当前页面,这样您就知道您应该下载该文件。然后,将您的代码放在该页面上的 Before Header 进程中。
您需要在页面设计器的页面级别将 Reload on Submit
设置为 Always
。然后就可以成功下载文件了。当 v_length
小于 1 时,您的代码也有机会提高 Value error
。确保在 v_length
超出限制 1-32767
时消除将文本附加到 blob
我收到此错误:
Error: SyntaxError: JSON.parse Error: Invalid character at position:1
在提交页面期间 oracle apex5.2
中执行以下代码,
下面的代码用于使用 oracle apex
中的 pl/sql
下载文件。
我创建了一个按钮;当我们单击该按钮时,下面的代码将执行并提交页面。
Declare
dest_loc11 BLOB := empty_blob();
dest_loc BLOB := empty_blob();
dest_loc2 BLOB := empty_blob();
dest_loc3 BLOB := empty_blob();
dest_loc4 BLOB := empty_blob();
dest_loc5 BLOB := empty_blob();
dest_loc6 BLOB := empty_blob();
src_loc BLOB := empty_blob();
l_zip_file blob;
v_length integer;
v_inp varchar2(32767);
v_count number;
n number:=1;
v_pr1_idx number;
v_pr1_idx2 number;
V_ID NUMBER;
v_pr_1 varchar2(32767):='130614';
V_RES VARCHAR2(32767);
V_PRINT VARCHAR2(32767):='';
V_PROMPT VARCHAR2(32767);
V_PRINT_RAW BLOB;
csv_file utl_file.file_type;
V_NO_DATA varchar2(32767);
v_pr_11 varchar2(32767);
BEGIN
DBMS_LOB.CREATETEMPORARY(
lob_loc => dest_loc11,
cache => true,
dur => dbms_lob.session
);
DBMS_LOB.OPEN(dest_loc11, DBMS_LOB.LOB_READWRITE);
V_PRINT:='udfhsdhgfszhduhjsdzvcjhzxjcvhzxc';
V_PRINT_RAW := utl_raw.cast_to_raw( V_PRINT );
v_length := dbms_lob.getlength(V_PRINT_RAW);
DBMS_LOB.WRITEAPPEND (
lob_loc => dest_loc11,
amount => v_length,
buffer => V_PRINT_RAW);
DBMS_LOB.CLOSE(dest_loc11);
sys.htp.init;
sys.owa_util.mime_header( 'text/plain', FALSE );
sys.htp.p('Content-length: ' || sys.dbms_lob.getlength( dest_loc11));
sys.htp.p('Content-Disposition: attachment; filename="' ||'bala.sql' || '"' );
sys.htp.p('Cache-Control: max-age=3600');-- tell the browser to cache for one hour, adjust as necessary
sys.owa_util.http_header_close;
sys.wpg_docload.download_file( dest_loc11);
DBMS_LOB.FREETEMPORARY (dest_loc11);
apex_application.stop_apex_engine;
end;
听起来您有一个 PL/SQL 动态操作,它会在单击按钮时触发,然后下载您的文件?不,您不能通过 Ajax.
下载文件Download a file by jQuery.Ajax
您需要做的是将用户重定向到不同的页面,或者返回到具有不同 REQUEST
值的当前页面,这样您就知道您应该下载该文件。然后,将您的代码放在该页面上的 Before Header 进程中。
您需要在页面设计器的页面级别将 Reload on Submit
设置为 Always
。然后就可以成功下载文件了。当 v_length
小于 1 时,您的代码也有机会提高 Value error
。确保在 v_length
超出限制 1-32767