Declaration in plsql
hi
I am trying to compile this code but its not comipiling here is the code
<pre>
declare
type null_record is record(
fname varchar2(10) default 'PLSQL',
lname varchar2(10) default 'Oracle');
procedure by_refrence(in_r in null_record, out_r out nocopy null_record) is
begin
out_r := in_r;
end by_refrence;
r_var1 null_record;
r_var2 null_record;
begin
r_var2.fname := 'SQL';
dbms_output.put_line('before assigning' || r_var2.fname);
by_refrence(r_var2, r_var1);
-- both the attributes of the records turns null
dbms_output.put_line('after assigning ' || r_var1.fname);
end
</pre>;
Not compiling? I'm not surprised: Where did you find this structure?
If you want an anonymous block then get the procedure declaration out of there.
If you want a stored procedure drop the word DECLARE and put your variables into the correct place before the BEGIN.
Look a the demos here:
http://www.psoug.org/reference/procedures.html
Likely your types should either be stand-alone types or declared in a package header.
Similar Messages
-
PLS-00323 forward declaration in PLSQL Version 10.
Hello.
I have a package which contains forward references which compiles on a 9i database.
However, when I try to compile an exact copy of the procedure on a 10g database it returns an error
"PLS-00323: subprogram or cursor 'P_PA_ACTION_START' is declared in a package specification and must be defined in the package body"
I was wondering if there were any differences in the rules concerning forward references in pl/sql 10.
Thanks in advance.
Glyn Williams.Hello.
I have a package which contains forward references which compiles on a 9i database.
However, when I try to compile an exact copy of the procedure on a 10g database it returns an error
"PLS-00323: subprogram or cursor 'P_PA_ACTION_START' is declared in a package specification and must be defined in the package body"
I was wondering if there were any differences in the rules concerning forward references in pl/sql 10.
Thanks in advance.
Glyn Williams. -
Hi Friends,
I am using Oracle 8.1.6 Server, & facing problems while retrieving data from a PL/SQL Table:
CREATE or REPLACE PROCEDURE test_proc IS
TYPE tP2 is TABLE of varchar2(10); --declared a collection
dt2 tP2 := tP2('a','b','c');
i NUMBER(8);
begin
SELECT COUNT(*) INTO i FROM TABLE(CAST(dt2 as tP2));
DBMS_OUTPUT.PUT_LINE('**'||i);
end;
While executing the above procedure, I encountered foll. error:
ERROR at line 1:
ORA-00600: internal error code, arguments: [15419], [severe error during PL/SQL execution], [], [],
ORA-06544: PL/SQL: internal error, arguments: [pfrrun.c:pfrbnd1()], [], [], [], [], [], [], []
ORA-06553: PLS-801: internal error [0]
Can anyone please help me, where the problem is??
Is it Possible to retrieve data from PL/SQL TABLE using SELECT statement? & How ?
Thanks in advance.
Best Regards,
Jay Raval.Thanks Roger for the Update.
It means that have to first CREATE TYPE .. TABLE in database then only I can fire a Select statement on that TYPE.
Actually I wanted to fire a Select statement on the TABLE TYPE, defined & declared in PLSQL stored procedure using DECLARE TYPE .. TABLE & not using CREATE TYPE .. TABLE.
I was eager to know this, because my organization is reluctant in using CREATE TYPE .. TABLE defined in the database, so I was looking out for another alternative to access PL/SQL TABLE using Select statement without defining it database. It would have been good if I could access a PLSQL TABLE using Select statement Declared locally in the stored procedure.
Can I summarize that to access a PL/SQL TABLE using SELECT statement, I have to first CREATE TYPE .. TABLE?
If someone have any other idea on this, please do let me know.
Thanks a lot for all help.
Best Regards,
Jay Raval.
You have to define a database type...
create type tP2 is table of varchar2(10)
CREATE OR REPLACE PROCEDURE TEST_PROC
IS
dt2 tP2 := tP2('a','b','c');
i NUMBER(8);
begin
SELECT COUNT(*) INTO i FROM TABLE(CAST (dt2 AS tP2));
DBMS_OUTPUT.PUT_LINE('**'||i);
end;
This will work.
Roger -
Host command in PL/SQL Package
Hi,
How is it possible to launch a host command from a PL/SQL package without Pro*C nor Java ?
Hope it's possible, 'cos Java is not available here and Pro*C has some^problems that the DBA cqn't solve...
Could you please answer at [email protected]
Thanks in advance !Hi Thomas,
You can call external progs within PlSql.
You have to
- Configure Tnsnames.ora aned listener.ora on the server
with the 'extproc' entry
- Have an external proc in a DDL on NT (or .so on unix)
- Create a libray pointing on this .so file with 'Create library'
- Declare a PlSql proc calling your external proc in the library
And then you will use your PlSql proc within your package.
It's fastidious but it works.
Mbo -
Package and type declaratrion in 10g
Hi forum,
1) Any difference is threre in ora 10g for declaration of plsql types'
Eg : type temp_x_tab is a table of x%rowtype index by binary integer;
here x is a pre-defined table in schema.
Is thr anything wronmg with this declaration in 10g?
2) Similarly package declration and specification has got any diference in 10g ,compared to previous releases of oracle?
Thanks,
AneeshThe docs are at http://tahiti.oracle.com
-
Strange problem with procedure calling from Java!!!
I am using Oracle 8.1.7 Database, Oracle 8i Application server and WInNT platform.
I am facing a strange problem while inserting a String from Java to Oracle database through Procedure. When i am passing the String containing single quotes(e.g "test' and ' and ' end") and without including any escape charactes for the single quotes I am passing the String by the setString() method then the procedure is inserting the single quotes without any problem.
Of course when I am independently executing the procedure thru backend and passing the same String containing single quotes then the error message comes as " quoted string not properly terminated" which is justified,
I have even printed the String in a file through sql on the runtime of the procedure when it is called by Java and then also the String contatins single quotes that is passed through java without any escape characters. This means that procedure is inserting the String into the column without any hassles!!!!!
Can anyone tell me what may be the reason for the peculiar behaviour of Database?
ThanksSri Ram wrote:
No actually in the documentation of oracle database 10g plsql user guide, oracle explains the concept of declaring nested plsql subprograms he gave the example but in the main block he gave NULL, without calling any procedure.Can you provide a link to where in the Oracle documentation you saw this example?
in order to know which procedure is getting first i added a dbms statement in both the functions and called the function from the main block.
the original example was
DECLARE
PROCEDURE proc1(number1 NUMBER); -- forward declaration
PROCEDURE proc2(number2 NUMBER) IS
BEGIN
proc1(number2); -- calls proc1
END;
PROCEDURE proc1(number1 NUMBER) IS
BEGIN
proc2 (number1); -- calls proc2
END;
BEGIN
NULL;
END;
---------------------------------------------------------------------------------------------------------The original example is equivalent to:
BEGIN
NULL;
END;That is, the main block never calls anything. Either you are misinterpreting the Oracle documentation, or if the example came from a non-Oracle source as I suspect, the author of that example has a deeply flawed understanding of how programming works.
John -
Mail send daily on fixed time 8:00 AM to the user.
Dear Sir,
i want to send Mail daily on 8:00 AM to the user.
my code is
DECLARE
l_id number;
to_add varchar2(1000);
to_sub_by varchar2(1000);
from_add varchar2(1000);
l_body varchar2(4000):=:P33_DESCRIPTION;
l_sub varchar2(1000):=:P33_SUBJECT;
I_case varchar2(10):=:P33_CASE_ID;
I_isue_dte date:=:P33_SUBMITTED_ON;
l_regd varchar(100);
CURSOR C1 IS SELECT EMAIL_ID,(SELECT EMAIL_ID FROM USER_MAS WHERE USER_ID =:P33_SUBMITTED_BY_ID) AS D FROM USER_MAS WHERE USER_GR_ID=:P33_ASSIGNED_TO_GROUP_ID AND USER_ID NOT IN(:APP_USER);
BEGIN
if :P33_ASSIGNED_TO_GROUP_ID is not null then
open C1;
LOOP
FETCH C1 INTO to_add,to_sub_by;
EXIT WHEN C1%NOTFOUND;
select email_id,user_name into from_add,l_regd from user_mas where user_id=:app_user;
l_id:=APEX_MAIL.SEND(
p_to => to_add, -- change to your email address
P_cc => to_sub_by,
p_from => from_add,
p_body => 'Issue Information'||''||chr(13)||chr(10)||chr(13)||chr(10)||
'www.farhorizonindia.net:7777/crm'||''||chr(13)||
'Issue Title'||':'||l_sub||CHR(13)||chr(10)||
'Issue Number'||':'||I_case||CHR(13)||
'Issue Open Date'||':'||I_isue_dte||''||chr(13)||chr(10)||CHR(13)||chr(10)||
'Most Recent Comment'||':'||''||chr(13)||chr(10)||
l_body||chr(13)||chr(10)||''||CHR(13)||chr(10)||'Regards'||chr(13)||chr(10)||''||l_regd||CHR(13)||chr(10)||CHR(13)||chr(10)||'Please do not reply to this email.If you wish to update the call.please login to the issue Management.',
P_subj => I_case ||' Issue '||l_sub);
end loop;
close C1;
end if;
COMMIT;
apex_mail.push_queue(
P_SMTP_HOSTNAME => '102.111.0.9',
P_SMTP_PORTNO => 25);
commit;
END;How can i do this.
Edited by: Vedant on Jun 30, 2011 3:44 AM
Edited by: Vedant on Jul 5, 2011 9:17 PMHi vedant,
you can use the DBMS_JOB to execute your pl/sql process daily, first declare your plsql process as procedure or package and then call your procedure or package within the DBMS_JOB like this
DECLARE
jobno number;
BEGIN
DBMS_JOB.SUBMIT(
job => jobno,
what => 'BEGIN (your procedure or package name); END;',
next_date => SYSDATE,
interval => TRUNC(SYSDATE)+(25/24));
COMMIT;
END;
/ May be this will help you.
Regards,
Mini
Marks Answers appropriately. -
PLSQL compiles but doesn't run.. I've declared it everywhere but still..
PLSQL compiles but doesn’t run.. I’ve declared it everywhere but still..
Afternoon.. Hopefully a quick one for someone.. I’m trying to run a Concurrent Program in ORACLE Financials using a Data Template derived BI Publisher report.
Error message received..
SUBIXCLT module: UofS Expense Claim Tracking Report
+--------------------------------------------------------------------------
All Parameters: raisedby=:status=:claimant=:expense_date_from=:expense_date_to=:LP_ORDERED_BY=Expense Report Number
Data Template Code: SUBIXCLT
Data Template Application Short Name: PO
Debug Flag: N
{raisedby=, claimant=, expense_date_to=, expense_date_from=, status=, LP_ORDERED_BY=Expense Report Number}
Calling XDO Data Engine...
[060410_025628319][][STATEMENT] Start process Data
[060410_025628324][][STATEMENT] Process Data ...
[060410_025628329][][STATEMENT] Executing data triggers...
[060410_025628329][][STATEMENT] BEGIN
SUBIXCLT.claimant := :claimant ;
SUBIXCLT.expense_date_from := :expense_date_from ;
SUBIXCLT.expense_date_to := :expense_date_to ;
SUBIXCLT.raisedby := :raisedby ;
SUBIXCLT.status := :status ;
SUBIXCLT.lp_ordered_by := :lp_ordered_by ;
:XDO_OUT_PARAMETER := 1;
END;
l_flag Boolean;
BEGIN
l_flag := SUBIXCLT.BEFOREREPORT(L_ORDERED) ;
if (l_flag) then
:XDO_OUT_PARAMETER := 1;
end if;
end;
[060410_025628356][][EXCEPTION] SQLException encounter while executing data trigger....
java.sql.SQLException: ORA-06550: line 4, column 33:
PLS-00201: identifier 'L_ORDERED' must be declared
ORA-06550: line 4, column 1:
PL/SQL: Statement ignoredThe Data Template
The Data Template
<?xml version="1.0" encoding="utf-8" ?>
- <dataTemplate name="UofS_OutstandngExpenses_Report" defaultPackage="SUBIXCLT" dataSourceRef="FINDEV" version="1.0">
- <properties>
<property name="xml_tag_case" value="upper" />
<property name="include_parameters" value="true" />
<property name="debug_mode" value="on" />
</properties>
- <parameters>
<parameter name="claimant" dataType="character" defaultValue="" />
<parameter name="expense_date_from" dataType="date" defaultValue="" />
<parameter name="expense_date_to" dataType="date" defaultValue="" />
<parameter name="raisedby" dataType="character" defaultValue="" />
<parameter name="status" dataType="character" defaultValue="" />
<parameter name="lp_ordered_by" dataType="character" defaultValue="" />
</parameters>
- <dataQuery>
<dataTrigger name="beforeReportTrigger" source="SUBIXCLT.BEFOREREPORT(L_ORDERED)" />
- <sqlStatement name="Q1">
- <![CDATA[
SELECT DISTINCT
erh.invoice_num,
pap.full_name EMP_CLAIMING,
DECODE(NVL(erh.expense_status_code, 'Not yet Submitted (NULL)'), 'CANCELLED', 'CANCELLED',
'EMPAPPR', 'Pending Individuals Approval', 'ERROR', 'Pending System Administrator Action',
'HOLD_PENDING_RECEIPTS ', 'Hold Pending Receipts', 'INPROGRESS', 'In Progress', 'INVOICED', 'Ready for Payment',
'MGRAPPR', 'Pending Payables Approval', 'MGRPAYAPPR', 'Ready for Invoicing', 'PAID', 'Paid',
'PARPAID', 'Partially Paid', 'PAYAPPR', 'Payables Approved', 'PENDMGR', 'Pending Manager Approval',
'PEND_HOLDS_CLEARANCE', 'Pending Payment Verification', 'REJECTED', 'Rejected', 'RESOLUTN', 'Pending Your Resolution',
'RETURNED', 'Returned', 'SAVED', 'Saved', 'SUBMITTED', 'Submitted', 'UNUSED', 'UNUSED',
'WITHDRAWN','Withdrawn', 'Not yet Submitted (NULL)') "EXPENSE_STATUS" ,
NVL(TO_CHAR(erh.report_submitted_date,'dd-MON-yyyy'),'NULL') SUBMIT_DATE,
NVL(TO_CHAR(erh.expense_last_status_date,'dd-MON-yyyy'),'NULL') LAST_UPDATE,
erh.override_approver_name ER_Approver,
fu.description EXP_ADMIN,
erh.total,
erh.description
FROM
AP_EXPENSE_REPORT_HEADERS_all erh,
per_all_people_f pap, fnd_user fu
WHERE erh.employee_id = pap.person_id
AND fu.user_id = erh.created_by
AND NVL(erh.expense_status_code, 'Not yet Submitted') NOT IN ('MGRAPPR', 'INVOICED', 'PAID', 'PARPAID')
AND pap.full_name = NVL(:claimant, pap.full_name)
AND TRUNC(erh.report_submitted_date) BETWEEN NVL(:expense_date_from, '01-JAN-1999') AND NVL(:expense_date_to,'31-DEC-2299')
AND fu.description = NVL(:raisedby,fu.description)
AND erh.expense_status_code = NVL(:status,erh.expense_status_code) &LP_ORDERED_BY
]]>
</sqlStatement>
</dataQuery>
<dataTrigger name="beforeReportTrigger" source="SUBIXCLT.BEFOREREPORT(L_ORDERED)" />
- <dataStructure>
- <group name="G_XP_CLM_TRACKNG" source="Q1">
<element name="INVOICE_NUM" value="INVOICE_NUM" />
<element name="EMP_CLAIMING" value="EMP_CLAIMING" />
<element name="EXPENSE_STATUS" value="EXPENSE_STATUS" />
<element name="SUBMIT_DATE" value="SUBMIT_DATE" />
<element name="LAST_UPDATE" value="LAST_UPDATE" />
<element name="LP_ORDERED_BY" dataType="varchar2" value="SUBIXCLT.LP_ORDERED_BY" />
</group>
</dataStructure>
</dataTemplate>The PL SQL..
The PL SQL..
CREATE OR REPLACE PACKAGE Subixclt IS
L_ORDERED VARCHAR2(50);
RAISEDBY VARCHAR2(50);
STATUS VARCHAR2(50);
CLAIMANT VARCHAR2(50);
LP_ORDERED_BY VARCHAR2(50);
FUNCTION BEFOREREPORT(L_ORDERED IN VARCHAR2) RETURN VARCHAR2;
EXPENSE_DATE_FROM DATE;
EXPENSE_DATE_TO DATE;
--RETURN VARCHAR2;
END;
CREATE OR REPLACE PACKAGE BODY Subixclt IS
FUNCTION BEFOREREPORT(L_ORDERED IN VARCHAR2)RETURN VARCHAR2 IS
BEGIN
Fnd_File.PUT_LINE(Fnd_File.LOG,'L_ORDERED'||L_ORDERED);
DECLARE
LP_ORDERED_BY VARCHAR2(50);
L_ORDERED VARCHAR2(50);
RAISEDBY VARCHAR2(50);
STATUS VARCHAR2(50);
CLAIMANT VARCHAR2(100);
EXPENSE_DATE_FROM DATE;
EXPENSE_DATE_TO DATE;
BEGIN
IF (LP_ORDERED_BY='Expense Report Number') THEN
LP_ORDERED_BY :='order by 1 asc;';
ELSIF (LP_ORDERED_BY='Person Claiming') THEN
LP_ORDERED_BY :='order by 2 asc;';
ELSIF (LP_ORDERED_BY='Submit Date') THEN
LP_ORDERED_BY :='order by 4 asc;';
END IF;
RETURN(L_ORDERED);
--RETURN NULL;
END;
END;
END;Thanks for looking..
Steven
Edited by: Mr_Alkan on Jun 4, 2010 3:35 PMOne has to initialise a session first for use with Oracle Apps if you want to make it run as a concurrent job.
Any decleration within your package will not be recognised unless initialisation is sucessful.
Investigate the built-in packages:
FND_GLOBAL - for initialisation
FND_SUBMIT - for setting session relevant parameters
-- function returns true or false depending on whether the initialisation was sucessful or not
create or replace function is_Init_OK (p_User_Name in varchar2
,p_Responsibility in varchar2
,p_Language in varchar2) return boolean as
b_Set_NLS boolean;
b_Set_Mode boolean;
r_ISet fnd_Init := Get_Init_Set(p_User_Name, p_Responsibility);
begin
-- 1
fnd_global.apps_initialize(r_ISet.User_ID, r_ISet.Resp_ID, r_ISet.App_ID);
-- 2
b_Set_NLS := fnd_submit.set_nls_options(p_Language);
-- 3
b_Set_Mode := fnd_submit.set_mode (false);
return (b_Set_Mode and b_Set_NLS and ( (r_ISet.Resp_ID is not null)
and (r_ISet.User_ID is not null)
exception
when others then
return false;
end is_Init_OK;
-- for example
declare
l_User_ID number = 'IMPORT_POST'; --- import post user
l_Resp number = 'Import and Posting responsibility' -- import posting responsibility
l_Language varchar2(100) := 'AMERICAN';
b_Init boolean := false;
INIT_EXCEPTION exception;
begin
b_Init := is_Init_OK(l_User_ID, l_Resp, l_Language);
if (not b_Init) then
raise INIT_EXCEPTION;
end if;
-- conitnue with your processing
exception
when others then
when INIT_EXECPTION then
when others then
end;
/ -
How to declare and use multi dimensional VARRAYs in PLSQL
Hi All,
I am trying to create and use multidimensional varray in plsql code...
can anyone let me know, how can I do this...
Thanks
KrishnaPlease do not confuse plsql collections with type objects.Well it's possible with persistent types but nested tables and varrays typically need to be explicitly initialized and extended.
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
SQL> CREATE OR REPLACE TYPE name_type_size IS VARRAY (3) OF VARCHAR2 (50);
2 /
Type created.
SQL> CREATE OR REPLACE TYPE name_type_size_array IS VARRAY (200) OF name_type_size;
2 /
Type created.
SQL> DECLARE
2 i_name_type_size_array name_type_size_array := name_type_size_array ();
3 BEGIN
4 FOR count1 IN 1 .. 200 LOOP
5
6 i_name_type_size_array.EXTEND;
7 i_name_type_size_array (count1) := name_type_size ();
8
9 FOR count2 IN 1 .. 3 LOOP
10
11 i_name_type_size_array (count1).EXTEND;
12 i_name_type_size_array (count1) (count2) := count2;
13
14 END LOOP;
15
16 END LOOP;
17 END;
18 /
PL/SQL procedure successfully completed.
SQL> -
Difference between empty plsql record and null plsql record
Hi there,
I am kinda getting confused with empty plsql record and null plsql record.
How do I assign plsql record to be empty and to be null?
create type emp_obj as object (enum number, ename varchar2);
CREATE OR REPLACE TYPE emp_type AS TABLE OF emp_obj;
ThanksFirst of all, do not use term PL/SQL record in this context. Record type in PL/SQL is completely different from object type. Secondly, there are 2 states of a nested table:
1. Unintialized:
SQL> create or replace
2 type emp_obj_type as object(enum number, ename varchar2(10));
3 /
Type created.
SQL> create or replace
2 type emp_tbl_type as table of emp_obj_type
3 /
Type created.
SQL> declare
2 v_emp_tbl emp_tbl_type;
3 begin
4 v_emp_tbl.extend;
5 end;
6 /
declare
ERROR at line 1:
ORA-06531: Reference to uninitialized collection
ORA-06512: at line 4
SQL> 2 Empty:
SQL> set serveroutput on
SQL> declare
2 v_emp_tbl emp_tbl_type := emp_tbl_type();
3 begin
4 dbms_output.put_line('Nested table v_emp_tbl has ' || v_emp_tbl.count || ' element(s).');
5 end;
6 /
Nested table v_emp_tbl has 0 element(s).
PL/SQL procedure successfully completed.
SQL> NULL aplies to nested table element, not to nested table itself:
SQL> declare
2 v_emp_tbl emp_tbl_type := emp_tbl_type();
3 begin
4 v_emp_tbl.extend;
5 if v_emp_tbl(1) is null
6 then
7 dbms_output.put_line('Nested table v_emp_tbl first element is NULL.');
8 end if;
9 end;
10 /
Nested table v_emp_tbl first element is NULL.
PL/SQL procedure successfully completed.
SQL> SY. -
Get distinct values from plsql array
Hi,
I have declared a variable as below in plsql proc.
type t_itemid is table of varchar2(10);
inserted set of items in to this using a program
now i want distinct values from that array how can i get it.I am using 9i so i cannot use set operator and more over my problem is that i am declaring the variable inside the plsql block . when i tried i am getting the below errors:
SQL> r
1 declare
2 type t_type is table of varchar2(10);
3 v_type t_type;
4 begin
5 v_type := t_type('toys','story','good','good','toys','story','dupe','dupe');
6 for i in (select column_value from table(v_type)) loop
7 dbms_output.put_line(i.column_value);
8 end loop;
9* end;
for i in (select column_value from table(v_type)) loop
ERROR at line 6:
ORA-06550: line 6, column 41:
PLS-00642: local collection types not allowed in SQL statements
ORA-06550: line 6, column 35:
PL/SQL: ORA-22905: cannot access rows from a non-nested table item
ORA-06550: line 6, column 10:
PL/SQL: SQL Statement ignored
ORA-06550: line 7, column 22:
PLS-00364: loop index variable 'I' use is invalid
ORA-06550: line 7, column 1:
PL/SQL: Statement ignored -
Urgent - How to call a Web Services from PLSQL - Please help
Hello,
I am very much new to WebServices, need to call web services through PLSQL. I have a urgent requirement, where i need to call the web services by passing from some paramters to it and the web services will return a varchar values as 'PASSED' or 'FAILED'.
Can you please approch me the best way to start with.
Thanks,
Srikanth.Hi,
I need to do it from PLSQL API's not from JAVA.
I have started developing the code through UTIL_HTTP. Getting lots of error.
Can you please guide me through these error.
Below is the wsdl and a blcok where i am trying to retrive the value from webservice.
Hope this will help you.
Code:
declare
soap_request varchar2(30000);
soap_respond varchar2(30000);
http_req utl_http.req;
http_resp utl_http.resp;
resp XMLType;
i integer;
begin
soap_request:= '<?xml version = "1.0" encoding = "UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<ns1:soapCheckRequest1 wsdl:ns1="https://isportal-qa.iss.net/exportcompliancemanager/services/ExportCheckService" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<FirstName xsi:type="xsd:string">saddam</FirstName>
<LastName xsi:type="xsd:string">hussein</LastName>
<companyName xsi:type="xsd:string">samueladams</companyName>
<address1 xsi:type="xsd:string">123 APT</address1>
<address3 xsi:type="xsd:string">Atlanta</address3>
<city xsi:type="xsd:string">uk</city>
<stateOrRegion xsi:type="xsd:string">GA</stateOrRegion>
<postalCode xsi:type="xsd:string">30338</postalCode>
<email xsi:type="xsd:string">sj@samueladams</email>
<isoCountryCode xsi:type="xsd:string">US</isoCountryCode>
<endUserIP xsi:type="xsd:string">209.134.168.203</endUserIP>
</ns1:soapCheckRequest1>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
http_req:= utl_http.begin_request
( 'http://isportal-qa.iss.net/exportcompliancemanager/services/ExportCheckService'
, 'POST'
, 'HTTP/1.1'
utl_http.set_header(http_req, 'Content-Type', 'text/xml'); -- since we are dealing with plain text in XML documents
utl_http.set_header(http_req, 'Content-Length', length(soap_request));
utl_http.set_header(http_req, 'SOAPAction', ''); -- required to specify this is a SOAP communication
utl_http.write_text(http_req, soap_request);
http_resp:= utl_http.get_response(http_req);
DBMS_OUTPUT.PUT_LINE('-------utl_http.get_response---------------------');
DBMS_OUTPUT.PUT_LINE('http_resp.status_code is :'||http_resp.status_code );
DBMS_OUTPUT.PUT_LINE('http_resp.reason_phrase is :'||http_resp.reason_phrase);
DBMS_OUTPUT.PUT_LINE('http_resp.http_version is :'||http_resp.http_version);
DBMS_OUTPUT.PUT_LINE('http_resp.private_hndl is :'||http_resp.private_hndl);
DBMS_OUTPUT.PUT_LINE('-------utl_http.get_response----------------------');
utl_http.read_text(http_resp, soap_respond);
utl_http.end_response(http_resp);
resp:= XMLType.createXML(soap_respond);
resp:= resp.extract('/soap:Envelop/soap:Body/child::node()'
, 'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"'
i:=0;
loop
dbms_output.put_line(substr(soap_respond,1+ i*255,250));
i:= i+1;
if i*250> length(soap_respond)
then
exit;
end if;
end loop;
end;
Error Message
http_resp.reason_phrase is :Internal Server Error
http_resp.http_version is :HTTP/1.1
http_resp.private_hndl is :0
-------utl_http.get_response----------------------
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><soapenv:Fault><faultco
apenv:Server.userException</faultcode><faultstring>org.xml.sax.SAXParseException: The prefix "ns1" for element "ns1:soapCheckRequest1" is not bound.</faultstring><detail><ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">atlcms
2.iss.net</ns1:hostname></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions targetNamespace="https://isportal-qa.iss.net/exportcompliancemanager/services/ExportCheckService" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="https://isportal-qa.iss.net/exportcompliancemanager/services/ExportCheckService" xmlns:intf="https://isportal-qa.iss.net/exportcompliancemanager/services/ExportCheckService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <!--
WSDL created by Apache Axis version: 1.3
Built on Oct 05, 2005 (05:23:37 EDT)
-->
- <wsdl:message name="soapCheckResponse1">
<wsdl:part name="soapCheckReturn" type="soapenc:string" />
</wsdl:message>
- <wsdl:message name="soapCheckRequest1">
<wsdl:part name="firstName" type="soapenc:string" />
<wsdl:part name="lastName" type="soapenc:string" />
<wsdl:part name="companyName" type="soapenc:string" />
<wsdl:part name="address1" type="soapenc:string" />
<wsdl:part name="address2" type="soapenc:string" />
<wsdl:part name="address3" type="soapenc:string" />
<wsdl:part name="city" type="soapenc:string" />
<wsdl:part name="stateOrRegion" type="soapenc:string" />
<wsdl:part name="postalCode" type="soapenc:string" />
<wsdl:part name="email" type="soapenc:string" />
<wsdl:part name="phone" type="soapenc:string" />
<wsdl:part name="isoCountryCode" type="soapenc:string" />
<wsdl:part name="endUserId" type="soapenc:string" />
<wsdl:part name="endUserIP" type="soapenc:string" />
<wsdl:part name="endUserSession" type="soapenc:string" />
<wsdl:part name="performGovCheck" type="xsd:boolean" />
<wsdl:part name="sendEmailNotification" type="xsd:boolean" />
<wsdl:part name="screeningLevelBasedOnSuppliedCountryCode" type="xsd:boolean" />
<wsdl:part name="screeningLevelBasedOnEndUserIP" type="xsd:boolean" />
<wsdl:part name="soundexMatch" type="xsd:boolean" />
</wsdl:message>
- <wsdl:message name="soapCheckRequest">
<wsdl:part name="firstName" type="soapenc:string" />
<wsdl:part name="lastName" type="soapenc:string" />
<wsdl:part name="companyName" type="soapenc:string" />
<wsdl:part name="address1" type="soapenc:string" />
<wsdl:part name="address2" type="soapenc:string" />
<wsdl:part name="address3" type="soapenc:string" />
<wsdl:part name="city" type="soapenc:string" />
<wsdl:part name="stateOrRegion" type="soapenc:string" />
<wsdl:part name="postalCode" type="soapenc:string" />
<wsdl:part name="email" type="soapenc:string" />
<wsdl:part name="phone" type="soapenc:string" />
<wsdl:part name="isoCountryCode" type="soapenc:string" />
<wsdl:part name="endUserId" type="soapenc:string" />
<wsdl:part name="endUserIP" type="soapenc:string" />
<wsdl:part name="endUserSession" type="soapenc:string" />
<wsdl:part name="performGovCheck" type="xsd:boolean" />
<wsdl:part name="sendEmailNotification" type="xsd:boolean" />
<wsdl:part name="screeningLevelBasedOnEndUserIP" type="xsd:boolean" />
<wsdl:part name="soundexMatch" type="xsd:boolean" />
</wsdl:message>
- <wsdl:message name="soapCheckResponse">
Thanks and Regard,
Srikanth -
Passing values to between Pages from a PLSQL Procedure in third Page
Hello,
I have a form divided into 3 pages. The first Page is used to select Template which is used to call a screen Page 54 and Page 55 (Wizard Based screen).
From Page 55 (third page) of my application, When I click on Finish Button (Submit Button), a PLSQL Procedure is called which inserts values in 5 to 6 tables on a schema. The Success message include Article &DOCID. successfully Added.
When I return to the first Page which is Page 24, it displays no value for DOCID.
Sample Example =
DECLARE
DOCID VARCHAR2(30);
BEGIN
INSERT INTO SURE_DOCUMENT
DOCUMENT_ID
, DOCUMENT_TYPE
, TITLE
, STATUS
, DISTRIBUTION
, ARCHIVE_REVIEW_DATE
, CONTENT_TYPE
, IMPACT
, SKILL_LEVEL
, SOURCE
, SERVER_MIN_VERSION
, SERVER_MAX_VERSION
, REFRESH_INTERVAL
, LAST_REFRESH
, FOLDER_ID
, TOPIC_ID
, NOTE_POSITION
, OWNING_SITE
, MODIFY_NUMBER
, VERSION_STRING
, ALIAS
, EXTKEY
, FORMAT_MODIFIER
, DELETED
, CREATED_BY
, CREATED_DATE
, CREATED_SITE
, UPDATED_BY
, UPDATED_DATE
, UPDATED_SITE
VALUES
( SURE_DOCUMENT_SEQ.NEXTVAL || '.1'
, :ARTICLE_TYPE
, :TITLE
, :STATUS
, :DISTRIBUTION
, SYSDATE
, 'TEXT/PLAIN'
, 'LOW'
, 'NOVICE'
, 'ADHOC'
, :RDBMS_MIN_VERSION
, :RDBMS_MAX_VERSION
, NULL
, NULL
, :FOLDER
, :TOPIC
, NULL
, 1
, 1
, NULL
, NULL
, NULL
, NULL
, 'N'
, HTMLDB_CUSTOM_AUTH.GET_USER
, SYSDATE
, 1
, HTMLDB_CUSTOM_AUTH.GET_USER
, SYSDATE
, 1
COMMIT;
SELECT SURE_DOCUMENT_SEQ.CURRVAL INTO DOCID FROM DUAL;
INSERT INTO SURE_DOCUMENT_CONTRIBUTORS
DOCUMENT_ID
, SURE_SEQUENCE
, USER_ID
, CONTRIBUTION_DATE
, CONTRIBUTION_ROLE
, MODIFY_NUMBER
, REASON
, DELETED
, CREATED_BY
, CREATED_DATE
, CREATED_SITE
, UPDATED_BY
, UPDATED_DATE
, UPDATED_SITE
VALUES
( DOCID
, 1
, 'SKOPPALK.UK'
, SYSDATE
, 'Contributing Author'
, 1
, 'Contributing Author'
, 'N'
, HTMLDB_CUSTOM_AUTH.GET_USER
, SYSDATE
, 1
, HTMLDB_CUSTOM_AUTH.GET_USER
, SYSDATE
, 1
INSERT INTO SURE_DOCUMENT_LANGUAGES
DOCUMENT_ID
, SURE_SEQUENCE
, LANGUAGE
, DELETED
, CREATED_BY
, CREATED_DATE
, CREATED_SITE
, UPDATED_BY
, UPDATED_DATE
, UPDATED_SITE
VALUES
( DOCID
, 1
, 'USAENG'
, 'N'
, HTMLDB_CUSTOM_AUTH.GET_USER
, SYSDATE
, 1
, HTMLDB_CUSTOM_AUTH.GET_USER
, SYSDATE
, 1
INSERT INTO KREW_WORKFLOW
DOCUMENT_ID
, PRIORITY
, OWNER
, REVIEWER
, MODERATOR
, ASSIGNED_DATE
, DUE_DATE
, CHECKED_OUT_BY
, CHECKED_OUT_DATE
, VERSION_STRING
, DESCRIPTION
, AUTHORS
, COMMENTS
, UPD_DATE
, COPYSTATUS
, COPYDISTRIBUTION
, COPYFOLDERID
VALUES
DOCID
, 3
, DECODE(:OWNERS, NULL, 'UNASSIGNED',:OWNERS)
, DECODE(:REVIEWER, NULL, 'UNASSIGNED',:REVIEWER)
, DECODE(:MODERATOR, NULL, 'UNASSIGNED',:MODERATOR)
, SYSDATE
, SYSDATE + 7
, NULL
, NULL
, 'SKOPPALK.UK'
, :TITLE
, :AUTHORS
, :COMMENTS
, SYSDATE
, :STATUS
, :DISTRIBUTION
, :FOLDER
INSERT INTO SURE_DOCUMENT_KEYWORDS
DOCUMENT_ID
, SURE_SEQUENCE
, KEYWORD_TYPE
, KEYWORD
, DELETED
, CREATED_BY
, CREATED_DATE
, CREATED_SITE
, UPDATED_BY
, UPDATED_DATE
, UPDATED_SITE
VALUES
( DOCID
, 1
, 'NOTE'
, :KEYWORDS
, 'N'
, HTMLDB_CUSTOM_AUTH.GET_USER
, SYSDATE
, 1
, HTMLDB_CUSTOM_AUTH.GET_USER
, SYSDATE
, 1
INSERT INTO SURE_DOCUMENT_REFERENCES
DOCUMENT_ID
, SURE_SEQUENCE
, REFERENCE_SOURCE
, REFERENCE_DOCUMENT_ID
, REFERENCE_TYPE
, REFERENCE_DESCRIPTION
, DELETED
, CREATED_BY
, CREATED_DATE
, CREATED_SITE
, UPDATED_BY
, UPDATED_DATE
, UPDATED_SITE
VALUES
( DOCID
, 1
, 'NOTE'
, DOCID || '.1'
, 'NOTE'
, :REFERENCES
, 'N'
, HTMLDB_CUSTOM_AUTH.GET_USER
, SYSDATE
, 1
, HTMLDB_CUSTOM_AUTH.GET_USER
, SYSDATE
, 1
INSERT INTO SURE_DOCUMENT_PLATFORMS
DOCUMENT_ID
, SURE_SEQUENCE
, PLATFORM_ID
, MIN_VERSION
, MAX_VERSION
, DELETED
, CREATED_BY
, CREATED_DATE
, CREATED_SITE
, UPDATED_BY
, UPDATED_DATE
, UPDATED_SITE
VALUES
( DOCID
, 1
, :PLATFORMS
, NULL
, NULL
, 'N'
, HTMLDB_CUSTOM_AUTH.GET_USER
, SYSDATE
, 1
, HTMLDB_CUSTOM_AUTH.GET_USER
, SYSDATE
, 1
INSERT INTO SURE_DOCUMENT_PRODUCTS
DOCUMENT_ID
, SURE_SEQUENCE
, PRODUCT_ID
, COMPONENT_ID
, MIN_VERSION
, MAX_VERSION
, DELETED
, CREATED_BY
, CREATED_DATE
, CREATED_SITE
, UPDATED_BY
, UPDATED_DATE
, UPDATED_SITE
VALUES
( DOCID
, 1
, :PRODUCTS
, NULL
, NULL
, NULL
, 'N'
, HTMLDB_CUSTOM_AUTH.GET_USER
, SYSDATE
, 1
, HTMLDB_CUSTOM_AUTH.GET_USER
, SYSDATE
, 1
COMMIT;
END;
The Success message is as follows:
Article &DOCID. Created/Updated SuccessfullyShivanand,
There's no need to post that much code when you could create a very short test case that demonstrates only the problem you are having.
You're using &NAME. notation on something that isn't a page or application item. You can't reference PL/SQL variables that way (or any other way) outside the PL/SQL scope. For your situation, you could create a page item named P55_DOCID and assign it a value in the PL/SQL process (:P55_DOCID := DOCID;), then reference &P55_DOCID. in HTML areas like the success message.
Scott -
How to improve performance using bulk collects with plsql tables or arrays
Hi All,
my procedure is like this
declare
cursor c1 is select ----------------------
begin
assigning to variables
validations on that variables
--50 validations are here --
insert into a table
end;
we have created indexes on primary keys,
i want to use
DECLARE
CURSOR a_cur IS
SELECT program_id
FROM airplanes;
TYPE myarray IS TABLE OF a_cur%ROWTYPE;
cur_array myarray;
BEGIN
OPEN a_cur;
LOOP
FETCH a_cur BULK COLLECT INTO cur_array LIMIT 100;
***---------can i assign cursor data to the plsql table variables or array***
***validate on the pl sql variable as---***
i
nsert into a table
EXIT WHEN a_cur%NOTFOUND;
END LOOP;
CLOSE a_cur;
END;
Edited by: Veekay on Oct 21, 2011 4:28 AMFastest way often is this:
insert /*+append */
into aTable
select * from airplanes;
commit;The select and insert part can even be done in parallel if needed.
However if the oparation is complex or the dataset is very very very very very large or the programmer is decent but not excellent then the bulk approach should be considered. It is often a pretty stable and linear scaling approach.
The solution depends a little on the database version.
LOOP
FETCH a_cur BULK COLLECT INTO cur_array LIMIT 100;
EXIT WHEN a_cur.count = 0;
forall i in a_cur.first.. a_cur.last
insert into aTable (id)
values (a_cur(i));
END LOOP;
...If you have more then one column then you might need a single collection for each column. Other possibilities depend on the db version.
Also: do not exit using a_cur%NOTFOUND. This is wrong! You might loose records from the end of the data set. -
How to assign the output of a function to a text area: a PLSQL challenge
I have a function that returns a PLSQL table of varchar4(4000)
Here is its signature in a package:
create or replace package researcher_request_pk
is
TYPE query_table_type is table of varchar2(4000) index by binary_integer;
FUNCTION RequestSQL(P_RRQ_ID in number) return query_table_type;
end;
I use this to get around the 32k limit on clobs and varchar2 variables
I want to assign the output of the function to a text area. I've tried the following PLSQL in a dynamic action and also as the source attribute of the Text Area but it doesn't populate the text area.
Here is the code i'm using
declare
v_table researcher_request_pk.query_table_type;
begin
v_table:=researcher_request_pk.RequestSQL(:P64_RRQ_ID);
for i in 1..v_table.count loop
htp.prn(v_table(i));
end loop;
end;
Any ideas on the correct syntax to do this?
thanks in advance
PaulPThanks for your reply
The function does populate the PLSQL table with data. e.g. If I place that exact code in a PLSQL region it generates the output on the screen with no problems. The problem is just generating the output into the text area.
I want the text area to display the output of the PLSQL table (-a dynamic select SQL statement) which I then plan to execute to return records.( i.e. I've build my own runtime query builder)
My plan is to allow the user to edit the SQL output first before sending the statement for execution.
Funnily enough I do get the very first word of the first cell appearing, namely 'SELECT' but nothing else. Maybe the "||" that follows has something to do with the rest of it not appearing?? hmmm... will experiment more.
thanks
PaulP
Maybe you are looking for
-
How to open a html file in a region on same page
Hi, I am trying to create a page where I have 2 regions. The left region,"lef_reg" has been created using HTML contains some text values. The right region, "rig_reg" is blank. I want that if a user clicks on a link on the left region (lef_reg) then a
-
[SOLVED]startx error with nvidia 740M
I have very usual problem with my nvidia driver, but none of the solution that I found works. I do search for using bumblebee and other but still not work. I still have same error "no device detected" and "no screen found". I also try to use nvidia-x
-
Anyone experience the same result after installing MacBook Air Flash Storage Firmware Update 1.1? Why did my macbook shut down?
-
Single 5870 vs Dual 5770?
For final cut x/compressor/motion needs, would it be more beneficial performance-wise to go with a pair of 5770s or a single 5870?
-
RTPSocketPlayer Cannot find a Player
I can not execute RTPSocketPlayer.class from sun mycode = import java.io.*; import java.net.*; import java.util.*; import javax.media.*; import javax.media.format.*; import javax.media.protocol.*; import javax.media.rtp.*; import javax.media.rtp.even