oracle forms 12c中的Json_表函数
我对oracle表单相当陌生。我需要使用json_表函数。当我运行下面的查询时,我得到下面提到的错误消息。但是,当我在SQLDeveloper中运行相同的查询时,它可以工作。如果有人能帮我找出原因,那就太好了。多谢各位oracle forms 12c中的Json_表函数,oracle,plsql,oracleforms,Oracle,Plsql,Oracleforms,我对oracle表单相当陌生。我需要使用json_表函数。当我运行下面的查询时,我得到下面提到的错误消息。但是,当我在SQLDeveloper中运行相同的查询时,它可以工作。如果有人能帮我找出原因,那就太好了。多谢各位 SELECT RPTD.GROUP_TODO_ID, query_json.event_id into :GLOBAL.RVS_ID,:GLOBAL.RV_EV_ID FROM RGTD , RPTD ,json_table(RGT
SELECT RPTD.GROUP_TODO_ID,
query_json.event_id
into :GLOBAL.RVS_ID,:GLOBAL.RV_EV_ID
FROM RGTD ,
RPTD
,json_table(RGTD.REVSHARE_INFO, '$' COLUMNS ( NESTED PATH '$.revenueShareFunds[*]' COLUMNS ( ID
VARCHAR2(10) PATH '$.rapId' , EVENT_ID VARCHAR2(12) PATH '$.revenueShareEventId')))
query_json
WHERE QUERY_JSON.ID = 'xxxxx'
AND RGTD.ID = RPTD.GROUP_TODO_ID
AND rownum =1;
编译12c oracle表单时出错:
正在对REVSHARE\u PART\u TO\u DO数据块编译预查询触发器。。。
REVSHARE\u PART\u TO\u DO数据块上的预查询触发器上的编译错误:
第23行第95列的PL/SQL错误103
在预期出现以下情况时遇到符号“;”:
),*&=-+>在in处为mod余数而非rem=>
或者!=或者~=>=对于最新版本的表单(10,11),即使在表单中显式连接也是不可能的。因此,您可以将查询放入数据库中的存储过程中,例如
CREATE OR REPLACE PROCEDURE Get_ID_Values(
i_json_id IN VARCHAR2,
o_rvs_id OUT rptd.group_todo_id%type,
o_rv_ev_id OUT VARCHAR2,
o_error OUT VARCHAR2
)
AS
BEGIN
SELECT rptd.group_todo_id, query_json.event_id
INTO o_rvs_id, o_rv_ev_id
FROM rgtd
JOIN rptd
ON rgtd.id = rptd.group_todo_id
CROSS JOIN json_table(rgtd.revshare_info,
'$' COLUMNS(NESTED PATH '$.revenueShareFunds[*]'
COLUMNS(id VARCHAR2(10) PATH '$.rapId',
event_id VARCHAR2(12) PATH
'$.revenueShareEventId'))) query_json
WHERE query_json.id = i_json_id
AND rownum = 1;
EXCEPTION WHEN no_data_found THEN o_error := 'No Data Found';
WHEN others THEN o_error := sqlerrm;
END;
/
所有人都从当前的预查询
触发器调用它。Hi@Barbaros收到相同的错误,我正在使用oracle12c@VimalBhaskar您能用代码编辑问题吗?如何从触发器调用存储过程?
CREATE OR REPLACE PROCEDURE Get_ID_Values(
i_json_id IN VARCHAR2,
o_rvs_id OUT rptd.group_todo_id%type,
o_rv_ev_id OUT VARCHAR2,
o_error OUT VARCHAR2
)
AS
BEGIN
SELECT rptd.group_todo_id, query_json.event_id
INTO o_rvs_id, o_rv_ev_id
FROM rgtd
JOIN rptd
ON rgtd.id = rptd.group_todo_id
CROSS JOIN json_table(rgtd.revshare_info,
'$' COLUMNS(NESTED PATH '$.revenueShareFunds[*]'
COLUMNS(id VARCHAR2(10) PATH '$.rapId',
event_id VARCHAR2(12) PATH
'$.revenueShareEventId'))) query_json
WHERE query_json.id = i_json_id
AND rownum = 1;
EXCEPTION WHEN no_data_found THEN o_error := 'No Data Found';
WHEN others THEN o_error := sqlerrm;
END;
/