错误:SyntaxError:JSON输入APEX 5.1的意外结束

时间:2018-03-15 21:54:47

标签: oracle-apex oracle-apex-5.1

我有这个问题: 我在动态操作中有这个JavaScript代码:

var vMe     = $(this.triggeringElement);
var vRow    = $(vMe).parents(".meAllRow");
var vSeqID  = $(vRow).find("[headers=SEQ_ID]").html();
var vEstado = $(vRow).find("[name=f01]").val();

apex.server.process("ajx_Cambia_estado",{x01:vSeqID,x02:vEstado});

这是PL-SQL代码

DECLARE

vEstado VARCHAR2(1);
vSeq    NUMBER := to_number(APEX_APPLICATION.g_x01);
BEGIN   
        IF (APEX_APPLICATION.g_x02 = 'A') THEN
            vEstado := 'I';
        ELSE
            vEstado := 'A';
        END IF;

        APEX_COLLECTION.UPDATE_MEMBER (
        p_collection_name => 'DINAMIC_LIST',
        p_seq  => vSeq,
        p_c002 => vEstado);   

END;

当我执行动态操作时,它会抛出此错误:

  

SyntaxError:JSON的意外结束

但是当我在PL-SQL中返回时:

htp.p('"process":"finish"');

错误消失。但我不需要发送响应消息,在Apex 4.2中我没有这个问题。

1 个答案:

答案 0 :(得分:2)

尝试:

DECLARE

vEstado VARCHAR2(1);
vSeq    NUMBER := to_number(APEX_APPLICATION.g_x01);

BEGIN   
        IF (APEX_APPLICATION.g_x02 = 'A') THEN
            vEstado := 'I';
        ELSE
            vEstado := 'A';
        END IF;

        APEX_COLLECTION.UPDATE_MEMBER (
        p_collection_name => 'DINAMIC_LIST',
        p_seq  => vSeq,
        p_c002 => vEstado);   

        apex_json.open_object;  
        apex_json.write('success', true);  
        apex_json.close_object; 

END;