我正在使用以下PL SQL for循环将多个xml节点值插入表中:
'job['||I||']/job_name'
在上面的代码中,此连接PL/SQL: SQL Statement ignored
PL/SQL: ORA-00907: missing right parenthesis
无效。
显示错误
'job[1]/job_name'
但是,如果我使用像<role_list>
<employee_id>123</employee_id>
<job>
<job_name>job1</job_name>
</job>
<job>
<job_name>job2</job_name>
</job>
</role_list>
这样的常量,那么它的效果很好。
这是我的示例输入xml:
$(function() {
function reload(elem, interval) {
var $elem = $(elem);
var $original = $elem.html();
$.ajax({
cache: false,
url: '/inbox-header.php',
type: 'get',
success: function(data) {
var opgehaaldedata = data.replace(
/(\r\n|\n|\r)/gm, "");
var orgineledata = $original.replace(
/(\r\n|\n|\r)/gm, "");
if (opgehaaldedata == orgineledata) {
//alert('a');
setTimeout(function() {
reload(elem, interval)
}, interval);
return;
} else {
$elem.html(opgehaaldedata);
setTimeout(function() {
reload(elem, interval)
}, interval);
return;
}
}
});
}
reload('#inboxheader', 500);
请帮我解决这个问题。
答案 0 :(得分:1)
SELECT X.EMP_ID, X.EMP_JOB
FROM XMLTABLE('/role_list/job[$count]'
PASSING xmlData, I AS "count"
COLUMNS EMP_ID VARCHAR2(10) PATH 'employee_id',
EMP_JOB VARCHAR2(30) PATH 'job_name'
) X;
答案 1 :(得分:0)
SET SERVEROUTPUT ON;
DECLARE
LV_X XMLTYPE := XMLTYPE('<STUDENT><NAME type="1">PRANEETH</NAME></STUDENT>');
LV_NAME VARCHAR2(200);
LV_NUMBER NUMBER := 1;
BEGIN
SELECT X.NAME
INTO LV_NAME
FROM XMLTABLE('/STUDENT,NAME[@type = $count]'
PASSING LV_X, LV_NUMBER AS "count"
COLUMNS NAME VARCHAR2(100) PATH 'NAME'
) X;
DBMS_OUTPUT.PUT_LINE(lv_namE);
END;
/
output :praneeth