Я пытаюсь вызвать хранимую процедуру из другой хранимой процедуры, которая выглядит примерно так, как в приведенном ниже коде:
create or replace procedure hello_world is
v_first_name VARCHAR2(30) := 'ABC';
v_LAST_name VARCHAR2(30) := 'XYZ';
BEGIN
htp.p('<HTML>');
htp.p('<HEAD>');
htp.p('<TITLE>Instructor Personal Info</TITLE>');
htp.p('</HEAD>');
htp.p('<BODY bgColor = "#99CCCC">');
HTP.P('<input type = "text" name = "TEXT" >');
HTP.P('<p id = "demo"></p>');
htp.p('<script type = "text/javascript">function myFunction() {/**Call the other stored procedure here passing the value from the the element "demo"**/');
htp.p('</script>');
HTP.P('<button type = "button" onclick = "myFunction()">Personal Info</button>');
HTP.p('<p>This example demonstrates how to assign an "onclick" event to a p element.</p>');
htp.p('<H1>Personal Info For '||v_first_name||' '||v_last_name||'</H1>');
htp.p('</BODY>');
htp.p('</HTML>');
END;
Я хочу передать значение элемента «Демо» в качестве параметра.
Это возможно? и как этого добиться?
@Ovoxo, ваше понимание правильное, однако я хотел бы знать, как этого можно достичь в pl / sql, поскольку я не знаю ни синтаксиса, ни пакетов, которые могут позволить мне это сделать.





Вот пример выполнения AJAX-запроса.
Я не мог это проверить.
Как видите, вам нужно изменить значения на http.open без имени вашей процедуры.
CREATE OR REPLACE PROCEDURE hello_world
IS
v_first_name VARCHAR2 (30) := 'ABC';
v_last_name VARCHAR2 (30) := 'XYZ';
BEGIN
HTP.p ('<HTML>');
HTP.p ('<HEAD>');
HTP.p ('<TITLE>Instructor Personal Info</TITLE>');
HTP.p ('</HEAD>');
HTP.p ('<BODY bgColor = "#99CCCC">');
HTP.p ('<input type = "text" name = "TEXT" >');
HTP.p ('<p id = "demo"></p>');
HTP.p('<script type = "text/javascript">function myFunction() {
var http;
var response;
var demo = document.getElementById("demo");
http = new XMLHttpRequest();
http.open("GET", "PROCEDURE_TO_CALL?param1 = "+ demo.value, false);
http.setRequestHeader("Cache-Control", "no-cache");
http.onreadystatechange = function() {
if (http.readyState == 4 && http.status == 200){
response = http.responseText;
}
}
http.send();
}');
HTP.p ('</script>');
HTP.p('<button type = "button" onclick = "myFunction()">Personal Info</button>');
HTP.p('<p>This example demonstrates how to assign an "onclick" event to a p element.</p>');
HTP.p( '<H1>Personal Info For '
|| v_first_name
|| ' '
|| v_last_name
|| '</H1>');
HTP.p ('</BODY>');
HTP.p ('</HTML>');
END;
Строка 29, символ 13 вызывает ошибку: система не может найти указанный ресурс. Я что-то упустил?
Вы меняли имя вызываемой процедуры и имя параметра?
Я изменил имя процедуры на имя своей процедуры, а передаваемый параметр на самом деле demo.value. Думаю, с параметром все должно быть хорошо ..
Если я вас правильно понимаю, вы хотите выполнить хранимую процедуру внутри части JavaScript и передать значение из элемента Demo в качестве параметра? Если вы этого хотите, я бы предложил использовать AJAX