Calling API in PLSQL
Hi all,
I need to call existing API from pl/sql.
And i also need to know how can i create my own API.
My backend is oracle.
If u have any idea pls reply to [email protected]
Thanks in advance.
Sujatha
The & prefix is a client tool (SQL*Plus) feature for defining substitution variables - i.e. the client substitutes the contents of that variable prior to submitting that block of text (SQL statement or anonymous PL/SQL block) to the server. Other tools, like TOAD, emulates the features of SQL*Plus, such as substitution variables.
It is not a server-side feature. The only variables in SQL are bind variables - and these are well documented.
Make sure you get to grips with what is a client feature, what is a server feature, and where the boundary is between client and server. PL/SQL is not a client side language. Does not have access to client devices and peripherals. It cannot "prompt" for user supplied values - and no DBMS_OUTPUT does not print/write lines of text either.
Similar Messages
-
Problem In Calling API fa_addition_pub.do_addition
Hello friends,
I am workin on the addition Of asset program
In which i called API fa_addition_pub.do_addition
but when i am executing it it gives me error
Error(157,1): PLS-00306: wrong number or types of arguments in call to 'DO_ADDITION'
Error(196,1): PLS-00201: identifier 'UPDATE_ERROR_MSG' must be declared
THE CODE WHICH I USED IS GIVEN BELOW
PLZ HELP ME TO SOLVE THIS PROBLEM.
CREATE OR REPLACE PROCEDURE APPS.FA_ADDITION_API (p_row_number NUMBER) AS
l_trans_rec fa_api_types.trans_rec_type;
l_dist_trans_rec fa_api_types.trans_rec_type;
l_asset_hdr_rec fa_api_types.asset_hdr_rec_type;
l_asset_fin_rec_old fa_api_types.asset_fin_rec_type;
l_asset_fin_rec fa_api_types.asset_fin_rec_type;
l_asset_fin_rec_new fa_api_types.asset_fin_rec_type;
l_asset_fin_mrc_tbl_new fa_api_types.asset_fin_tbl_type;
l_asset_deprn_rec fa_api_types.asset_deprn_rec_type;
l_asset_deprn_rec_new fa_api_types.asset_deprn_rec_type;
l_asset_deprn_mrc_tbl fa_api_types.asset_deprn_tbl_type;
l_asset_desc_rec fa_api_types.asset_desc_rec_type;
l_asset_type_rec fa_api_types.asset_type_rec_type;
l_asset_cat_rec fa_api_types.asset_cat_rec_type;
l_asset_dist_rec fa_api_types.asset_dist_rec_type;
l_asset_hierarchy_rec fa_api_types.asset_hierarchy_rec_type;
l_inv_rec fa_api_types.inv_rec_type;
l_inv_trans_rec fa_api_types.inv_trans_rec_type;
l_period_rec fa_api_types.period_rec_type;
l_who_rec fa_api_types.standard_who_rec_type;
l_inv_tbl fa_api_types.inv_tbl_type;
l_inv_rate_tbl fa_api_types.inv_rate_tbl_type;
l_asset_dist_tbl fa_api_types.asset_dist_tbl_type;
l_tax_book_tbl fa_cache_pkg.fazctbk_tbl_type;
l_initial_book boolean := TRUE;
CURSOR xx_addition_cur (p_row_number NUMBER)
IS
SELECT *
FROM xx_reg_book_load_interface
WHERE ROW_NUMBER = p_row_number;
-- Get the inventory details for Asset Addition API
CURSOR xx_dist_info_cur (p_asset_id NUMBER)
IS
SELECT fdh.*
FROM fa_distribution_history fdh
WHERE fdh.transaction_header_id_in = (SELECT MIN(transaction_header_id)
FROM fa_transaction_headers fth
WHERE fth.asset_id = p_asset_id
AND fth.transaction_type_code in ('TRANSFER IN', 'TRANSFER IN/VOID') );
-- AND transaction_header_id_in = p_transaction_id
-- AND NVL (transaction_units, 1) > 0;
-- Get the inventory details for Asset Adjustment API
CURSOR xx_inv_rec_type_adj_cur (p_row_number NUMBER)
IS
SELECT fai.invoice_transaction_id_in, fai.deleted_flag,
fai.invoice_number, fai.po_number, fai.unrevalued_cost,
fai.project_id, fai.task_id, fai.payables_code_combination_id,
fai.fixed_assets_cost, fai.source_line_id, fai.payables_cost,
xrbli.transaction_type_code, fai.ap_distribution_line_number,
fai.description, fai.po_vendor_id,
fai.payables_units,
fai.invoice_id,
fai.invoice_date
FROM fa_asset_invoices fai, xx_reg_book_load_interface xrbli
WHERE fai.invoice_transaction_id_in = xrbli.invoice_transaction_id
AND xrbli.ROW_NUMBER = p_row_number;
-- Out parameter for Addition API
l_return_status VARCHAR2 (1);
-- Out parameter for Addition API
l_mesg_count NUMBER := 0;
-- Out parameter for Addition API and used for error tracking
l_mesg VARCHAR2 (4000);
-- Index for inventory record table
l_dist_rec_count NUMBER := 0;
l_inv_rec_count NUMBER := 0;
l_stat_class VARCHAR2(50) ;
BEGIN
-- Open XX_ADDITION_CUR cursor by passing the period
FOR p_asset_addition IN xx_addition_cur (p_row_number)
LOOP
-- ASSET_FIN_REC_TYPE Asset Structure
l_asset_fin_rec.date_placed_in_service :=p_asset_addition.date_placed_in_service;
l_asset_fin_rec.COST := p_asset_addition.COST;
l_asset_fin_rec.depreciate_flag := 'YES'; -- YES for all the records
-- Transaction Info
/* BEGIN
SELECT segment4
INTO l_stat_class
FROM fa_categories_b fcb
WHERE fcb.category_id = p_asset_addition.asset_category_id ;
EXCEPTION WHEN OTHERS THEN
l_stat_class := NULL ;
END ;
IF ( NVL(l_stat_class,'*') = 'I' ) THEN
l_trans_rec.transaction_subtype := 'AMORTIZED' ;
END IF ;
l_trans_rec.who_info := l_who_rec;
-- ASSET_HDR_REC_TYPE Asset Structure (Asset ID should not be there for Addition API)
l_asset_hdr_rec.book_type_code := p_asset_addition.book_type_code;
-- ASSET_DESC_REC_TYPE Asset Structure
l_asset_desc_rec.asset_number := p_asset_addition.asset_number;
l_asset_desc_rec.description := p_asset_addition.description; ----modify by anand
l_asset_desc_rec.current_units := p_asset_addition.current_units;
l_asset_desc_rec.asset_key_ccid := p_asset_addition.asset_key_ccid;
-- ASSET_TYPE_REC_TYPE Asset Structure
l_asset_type_rec.asset_type := p_asset_addition.asset_type;
-- ASSET_CAT_REC_TYPE Asset Structure
l_asset_cat_rec.category_id := p_asset_addition.asset_category_id;
-- Initialize the count
l_inv_rec_count := 0;
-- INV_REC_TYPE Invoice Structure
FOR i IN xx_inv_rec_type_adj_cur (p_row_number)
LOOP
--IF l_asset_id_count p_asset_adjustment.asset_id THEN
l_inv_rec_count := l_inv_rec_count + 1;
l_inv_trans_rec.transaction_type := i.transaction_type_code;
--l_inv_rec.source_line_id := i.source_line_id;
l_inv_rec.fixed_assets_cost := i.fixed_assets_cost;
l_inv_rec.payables_cost := i.payables_cost;
l_inv_rec.payables_code_combination_id :=i.payables_code_combination_id;
l_inv_rec.invoice_number := i.invoice_number;
l_inv_rec.po_number := i.po_number;
l_inv_rec.unrevalued_cost := i.unrevalued_cost;
l_inv_rec.project_id := i.project_id;
l_inv_rec.task_id := i.task_id;
l_inv_rec.deleted_flag := i.deleted_flag;
l_inv_rec.description := i.description;
l_inv_rec.po_vendor_id := i.po_vendor_id;
l_inv_rec.ap_distribution_line_number :=i.ap_distribution_line_number;
l_inv_rec.payables_units := i.payables_units;
l_inv_rec.invoice_id := i.invoice_id;
l_inv_rec.invoice_date := i.invoice_date;
l_inv_tbl (l_inv_rec_count) := l_inv_rec;
--l_asset_id_count := p_asset_adjustment.asset_id;
--END IF;
END LOOP;
-- ASSET_DIST_REC_TYPE and ASSET_DIST_TBL_TYPE Asset Structure
FOR i IN xx_dist_info_cur (p_asset_addition.asset_id
-- , p_asset_addition.transaction_header_id
LOOP
l_dist_rec_count := l_dist_rec_count + 1;
-- l_asset_dist_rec.assigned_to := i.assigned_to;
l_asset_dist_rec.units_assigned := i.units_assigned;
l_asset_dist_rec.expense_ccid := i.code_combination_id;
l_asset_dist_rec.location_ccid := i.location_id;
l_asset_dist_tbl (l_dist_rec_count) := l_asset_dist_rec;
END LOOP;
-- Update to 0 for further use
l_dist_rec_count := 0;
--fnd_file.put_line(fnd_file.log, 'Calling the Addition API') ;
-- Call Addition api
fa_addition_pub.do_addition
(p_api_version => 1.0,
p_init_msg_list => fnd_api.g_false,
p_commit => fnd_api.g_false,
p_validation_level => fnd_api.g_valid_level_full,
x_return_status => l_return_status,
x_msg_count => l_mesg_count,
x_msg_data => l_mesg,
p_calling_fn => 'FA_ADDITION_API', ---modify by anand
px_trans_rec => l_trans_rec,
px_dist_trans_rec => l_dist_trans_rec,
px_asset_hdr_rec => l_asset_hdr_rec,
px_asset_desc_rec => l_asset_desc_rec,
px_asset_type_rec => l_asset_type_rec,
px_asset_cat_rec => l_asset_cat_rec,
px_asset_hierarchy_rec => l_asset_hierarchy_rec,
px_asset_fin_rec => l_asset_fin_rec,
px_asset_deprn_rec => l_asset_deprn_rec,
px_asset_dist_tbl => l_asset_dist_tbl,
px_inv_tbl => l_inv_tbl,
px_inv_rate_tbl => l_inv_rate_tbl
--fnd_file.put_line(fnd_file.log, 'Addition API returned status as : '|| l_return_status) ;
IF (l_return_status = fnd_api.g_ret_sts_success)
THEN
l_mesg_count := fnd_msg_pub.count_msg;
IF l_mesg_count > 0
THEN
l_mesg :=CHR (10)|| SUBSTR (fnd_msg_pub.get (fnd_msg_pub.g_first,fnd_api.g_false),1,512);
FOR i IN 1 .. (l_mesg_count - 1)
LOOP
l_mesg :=l_mesg|| CHR (10)|| SUBSTR (fnd_msg_pub.get (fnd_msg_pub.g_next,fnd_api.g_false),1,512);
END LOOP;
fnd_msg_pub.delete_msg ();
END IF;
l_mesg := 'FAILED (' || SQLERRM || '): ' || l_mesg;
-- Procedure to update XX_REG_BOOK_LOAD_INTERFACE table with rejection reason
update_error_msg ('Addition', l_mesg, p_asset_addition.ROW_NUMBER);
ELSE
-- Display the successful record
fnd_file.put_line (fnd_file.output,p_asset_addition.asset_number|| ' -> '|| p_asset_addition.description|| ' for asset Addition Success.'); --- modify by anand
END IF;
-- Delete PLSQL table and record type variables data
--empty_rec;
END LOOP;
END fa_addition_api;
tahnk youYou call do_addition with a wrong set of parameters or you use the wrong datatypes from your parameters.
Check what parameters ( and their datatypes ) that procedure expects.
Also check if you have the right privileges for using UPDATE_ERROR_MSG and that a synonym exists for it.
fa_addition_pub.do_addition
(p_api_version => 1.0,
p_init_msg_list => fnd_api.g_false,
p_commit => fnd_api.g_false,
p_validation_level => fnd_api.g_valid_level_full,
x_return_status => l_return_status,
x_msg_count => l_mesg_count,
x_msg_data => l_mesg,
p_calling_fn => 'FA_ADDITION_API', ---modify by anand
px_trans_rec => l_trans_rec,
px_dist_trans_rec => l_dist_trans_rec,
px_asset_hdr_rec => l_asset_hdr_rec,
px_asset_desc_rec => l_asset_desc_rec,
px_asset_type_rec => l_asset_type_rec,
px_asset_cat_rec => l_asset_cat_rec,
px_asset_hierarchy_rec => l_asset_hierarchy_rec,
px_asset_fin_rec => l_asset_fin_rec,
px_asset_deprn_rec => l_asset_deprn_rec,
px_asset_dist_tbl => l_asset_dist_tbl,
px_inv_tbl => l_inv_tbl,
px_inv_rate_tbl => l_inv_rate_tbl
); -
Hi,
I have to post a file using this google API
https://developers.google.com/analytics/devguides/config/mgmt/v3/mgmtReference/management/uploads/uploadData#try-it
How I will call this in PLSQL?
thanks,
7ZYou're retrieving a text containing character entity references.
UTL_I18N.UNESCAPE_REFERENCE will take care of getting back the original characters :
SQL> set scan off
SQL>
SQL>
SQL> SELECT utl_i18n.unescape_reference(
2 REGEXP_SUBSTR(tr,'<span id=result_box class="short_text"><span[^>]*>(.*)</span></span>',1,1,'i',1)
3 ) translated_value
4 FROM (
5 SELECT httpuritype('http://translate.google.com/?hl=en&layout=1&eotf=1&sl=en&tl='||'vi'||'&text='||
6 UTL_URL.escape('My text to be converted')|| '#').getclob() tr
7 FROM DUAL
8 );
TRANSLATED_VALUE
Văn bản của tôi được chuyển đổi -
ACE - unable to execute various show commands. Error: Called API timed out
Hi I am runnng version A2(2.3) on a HA ACE setup.
I have noticed today that issuing various show commands such as 'show run' and 'show probe' on the active ACE have suddenly stopped working. On hitting return the ACE sits there for a while non respondant before finally outputting an Error: Called API timed out and then returning to the command prompt. It only seems to happen on show commands that would generate a lot of output, for example a 'show version' works. I have also noticed a delay sometimes in logging into the active ACE which has again only come to light today.
We havent made any changes recently and this behavior has not been seen before.
I could only find one similar posting which kind of suggested that a high logging level may be to blame for this issue, we are running at debugging level but have since the ACE's were brought into play over 12 months ago (yep i know logging at that level is far from ideal).
Production traffic does not seem to be affected at present.
Apart from reudcing the logging level I am not sure what else could be causing this issue, has anyone come across this one before?
Unfortunaltey the 'show resource usgae in one of the commands that wont work'
A 'show cpu' command shows nothing above 10%
Though multiple context are configured (3), the default resource allocation is in place between all three.
Thanks for taking the time to read.Thanks for the response I will take a look at that Bug ID.
In the end as you have already suggested above I ended up failing across to the standby ACE and powering down/up the affected ACE module from the switch CLI. This seems to have restored all functionality. Even a soft reload command prior on the affected ACE didnt take affect. -
ACE# sh script code - Error: Called API is invalid or non-existant
What is this ??
ACE# dir disk0:
2846 Jun 14 2010 15:40:33 NORDICID_PROBE
ACE# sh script code NORDICID_PROBE
Error: Called API is invalid or non-existant
Hardware is ACE-4710-K9 and software A3(2.7)
The probe itself is functioning ok according to show probe detail.
However show script script_name probe_name -counters all remain at zero for some reason. This wasn't the case on the previously use ACE software.
To my recollection the command show script code has worked successfully before on the same ACE software. Not 100% sure though, but it definitely worked on the previous software we ran on the ACE.Hi Timo,
You could be hitting CSCtu33866 (see
http://tools.cisco.com/Support/BugToolKit/search/getBugDetails.do?method=fetchBugDetails&bugId=CSCtu33866 for more details)
If you are really hitting this bug, a reboot should fix the issue.
I hope this helps
Daniel -
ACE - Error: Called API encountered error
Hello All,
I was trying to add a ssl-proxy server to a policy map when I had this error message "Error: Called API encountered error".
I'm running version A2(1.4a).
did anyone encounter the same issue?
Rgds,
Thibault.The ACE uses an SSL proxy service in a Layer 7 policy map to load balance outbound SSL initiation requests to SSL servers. The ACE acts as an SSL client sending an encrypted request to an SSL server. For more information about SSL initiation, see the Cisco Application Control Engine Module SSL Configuration Guide.
To specify an SSL proxy service in a policy map, use the ssl-proxy command in policy map load-balancing class configuration mode. The syntax of this command is as follows:
ssl-proxy client name
The name argument is the identifier of an existing SSL proxy service. Enter an unquoted text string with no spaces and a maximum of 64 alphanumeric characters.
For example, enter:
host1/Admin(config-pmap-lb-c)# ssl-proxy client PROXY_SERVICE1
To remove the SSL proxy service from the policy map, enter:
host1/Admin(config-pmap-lb-c)# no ssl-proxy client PROXY_SERVICE1 -
Hello Gurus,
I'm inserting rows into mtl_transaction_interface table and calling mtl_online_transaction_pub.process_online to process it from a TRIGGER on mtl_material_transactions table.
But it doesn't process the data and errors with process_flag 3.
If I comment the call to mtl_online_transaction_pub.process_online and just insert into interface table and then call mtl_online_transaction_pub.process_online from independent PLSQL block it works fine.
Can someone suggest a solution for the problem, I think the issue is in the design.
Thanks
ManuHi,
I hope you are using an 'after insert' trigger on mtl_transactions_interface.
Ensure that the MTI record is populated with transaction_header_id with transaction_mode = 1 (Online), process_flag = 1 and lock_flag = 2.
Call the txn processor with transaction_header_id, and it should work.
If transaction_mode is 2 (immediate) or 3 (Background) then the MTI record must be commited in database; calling txn processor from trigger cannot see the record as it is not committed.
If it doesn't work, then you will have to retrieve errors from the return message to understand the problem in detail.
I would strongly recommend not to use trigger for such processing.
I believe, you have a custom package/procedure from which you are inserting data into MTI.
once the insert is done, then you can call the same API from custom code.
Also check how exactly is MTI is getting inserted, is apps context set correctly (either by means of concurrent program, or by explicitly calling fnd_global.apps_initialize(..) )
If it still doesnt work, enable Inventory Debug by setting up profiles INV%DEBUG%, and see the log messages. (e.g. set the log file as /usr/tmp/mti.log )
Hope it helps, -
Hi,
I want to make a call from PLSQL to an OS command. I know I can use the normal methods of dbms_pipe, java call, etc. But I was curious if there was an 11i api that I could use to accomplish this?
Thanks in advance!embed your pl/sql script in the unix script. Register as a concurremnt program, as executable Host.
get use of some of 11i API's.
Check out:
http://www.oracleappshub.com/api/oracle-api-availability-concurrent-program/
http://www.oracleappshub.com/aol/4-steps-for-host-based-concurrent-program/ -
In .jar file how can I call API's of other .Jar file
Hi all,
I have created a "MyApplication.jar" file that dose not need any other .jar file Like xercesImpl.jar thne it is working fine.
but If I make the .jar file of application that needs xercesImpl.jar API's
of this .jar file then how I can call that xercesImpl.jar in my Application.jar newly created.
please help me
Thanks in advance.either add the other jar file to your classpath or do the following (taken from http://javaalmanac.com/egs/java.lang/LoadClass.html)
e68. Loading a Class That Is Not on the Classpath
A URLClassLoader can be used to load classes in any directory.
// Create a File object on the root of the directory containing the class file
File file = new File("c:\\myclasses\\");
try {
// Convert File to a URL
URL url = file.toURL(); // file:/c:/myclasses/
URL[] urls = new URL[]{url};
// Create a new class loader with the directory
ClassLoader cl = new URLClassLoader(urls);
// Load in the class; MyClass.class should be located in
// the directory file:/c:/myclasses/com/mycompany
Class cls = cl.loadClass("com.mycompany.MyClass");
} catch (MalformedURLException e) {
} catch (ClassNotFoundException e) {
} -
Remote SAP function call from a plsql procedure
Hi,
How i can call a remote SAP function from a plsql procedure?
Thnaks in advance:
BiancaI don't see any relation to Oracle Forms in this question. Is there any? If so, can you specify what you want to do, and the version numbers of Forms and databases involved?
And what does a call to a remote SAP procedure look like? Is it a DB procedure in an Oracle database? Then you can simply use a database link to the SAP database. -
How to call jsp in PLSQL code (to upload a file in IFS)
Hello,
We develop our PORTAL (9.0.2) with PL/SQL way.
We want to make a form to upload file in IFS.
We create a form like that :
htp.formOpen(cmethod =>'post',
cenctype => 'multipart/form-data',
curl => '/pls/ptlcollab/ptlcollab.GestionDoc_screenbuilder.manipTableIFS',
cattributes => 'name="ifs"') ;
htp.TableData(htf.FORMFILE(cname=>'file', cattributes => 'size="25"')) ;
The manipTableIFS procedure calls a loaded java procedure which called a servlet which work with IFS.
BUT, modplsql seems to want we directly upload the doc in a table but we want to upload the doc in iFS !!!
So, the solutiuon seems to call a jsp (or a servlet directly from our plsql code).
BUT, how could I do that ???
Any help would be greatly appreciated.
Regards.
Luc.Something along these lines ought to do what you want:
<html>
<body>
<form name='foobar' action='foobar.jsp'>
<script language='Javascript'>
function askim() {
if (confirm('Is you sure?')) {
document.foobar.submit();
} else return false;
</script>
<input type='button' value='Submit' onClick='askim()'>
</form>
</body>
</html>
Your mileage may vary.
But the idea here is that the Javascript merely submits the form if the user clicks "OK" on the confirmation pop-up. Otherwise, nothing happens. The form is submitted to a JSP file which accepts the request, does something (such as call your Java class), then prints out some HTML in response. -
Call from Java Plsql Procedure with VArray as Out Parameter
Hi,
I have a Java web application(Tomcat server) that call a plsql procedure with Varray as OUT parameter.
The Plsql code is perfectly compiled.
When i run the application, I get the following error msg in my Tomcat window:
java.sql.SQLException: ORA-06530: Reference to uninitialized composite
ORA-06512: at "SEMS1.PACK_SEMSADMIN_OFFEREDJOBS", line 102
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:109
3)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2047)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2709)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStat
{color:#0000ff}
Doubt: Do I need to declare ArrayDescriptors to retrieve the VArray from the Plsql procedure.
I think the below statement is enough; we need ArrayDescriptors only when we we wish to send a Plsql Object or Varray from Java code to the procedure. Plz correct me if not so.
dbCallableStatement.execute();
ARRAY SimpleOUTArray = (ARRAY) ((OracleCallableStatement) dbCallableStatement).
getObject(Integer.parseInt(arlParameterOutIndex.get(i).toString()));{color}
I am unable to realize where the mistake is?
{color:#800000}
{color}{color:#800000}
VARRAY AND PROC DETAILS:
TYPE STRUCT_JOB_DETAILS AS OBJECT
APPL_NO NUMBER (10),
S_FNAME VARCHAR2 (32 Byte),
S_MI VARCHAR2 (32 Byte),
S_LNAME VARCHAR2 (32 Byte),
APPL_DATE DATE,
DESCRIPTION VARCHAR2 (100 Byte),
S_UCID VARCHAR2 (8 Byte)
TYPE VARRAY_JOB_DETAILS IS VARRAY(100) OF STRUCT_JOB_DETAILS;{color}
{color:#800000}PROCEDURE:{color}
{color:#800000}CREATE OR REPLACE PACKAGE PACK_SEMSADMIN_OFFEREDJOBS
AS
TYPE Generic_Cursor_Type IS REF CURSOR;
--TYPE varray_job_detail is VARRAY(100) OF STRUCT_JOB_DETAILS;
--va_varray_job_detail varray_job_detail := varray_job_detail();
va_varray_job_detail VARRAY_JOB_DETAILS := VARRAY_JOB_DETAILS();
PROCEDURE Admin_Jobs_Offered_Rtr
ic_status IN VARCHAR2,
or_offered_jobs OUT Generic_Cursor_Type,
va_varray_job_detail OUT VARRAY_JOB_DETAILS
CREATE OR REPLACE PACKAGE BODY PACK_SEMSADMIN_OFFEREDJOBS
AS
PROCEDURE Admin_Jobs_Offered_Rtr
ic_status IN VARCHAR2,
or_offered_jobs OUT Generic_Cursor_Type,
va_varray_job_detail OUT VARRAY_JOB_DETAILS
AS
vc_query VARCHAR2(15000) := '';
vc_query_1 VARCHAR2(15000) := '';
counter NUMBER := 1;
vc_no NUMBER := 0;
or_applicants_list Generic_Cursor_Type;
TYPE type_appln_list IS RECORD
job_no NUMBER(10),
job_title VARCHAR2(50 BYTE),
account_no VARCHAR2(10 BYTE),
head_fname VARCHAR2(32 BYTE),
head_minitial VARCHAR2(10 BYTE),
head_lname VARCHAR2(32 BYTE),
num NUMBER
vn_appln_list type_appln_list;
TYPE type_job_offered IS RECORD
APPL_NO NUMBER (10),
S_FNAME VARCHAR2 (32),
S_MI VARCHAR2 (32),
S_LNAME VARCHAR2 (32),
APPL_DATE DATE,
DESCRIPTION VARCHAR2 (100),
S_UCID VARCHAR2 (8)
vn_job_offered type_job_offered;
BEGIN
vc_query := vc_query || ' SELECT jobs.job_no,job_title, account_no, head_fname, head_minitial, head_lname, num';
vc_query := vc_query || ' FROM jobs, ( ' ;
vc_query := vc_query || ' SELECT jobs.job_no,count(*) as num' ;
vc_query := vc_query || ' FROM student_apps ,jobs ' ;
vc_query := vc_query || ' WHERE jobs.job_no = student_apps.job_no' ;
vc_query := vc_query || ' AND (student_apps.status in (''o'',''t'')) '; --|| ic_status || ')' ;
vc_query := vc_query || ' AND jobs.status not in (''z'', ''Z'')' ;
vc_query := vc_query || ' GROUP BY jobs.job_no' ;
vc_query := vc_query || ' ) no_apps_off' ;
vc_query := vc_query || ' WHERE jobs.job_no = no_apps_off.job_no' ;
dbms_output.put_line('Executed Query_1');
va_varray_job_detail := VARRAY_JOB_DETAILS();
va_varray_job_detail.extend(100);
OPEN or_offered_jobs FOR vc_query;
LOOP
FETCH or_offered_jobs INTO vn_appln_list;
EXIT WHEN or_offered_jobs%NOTFOUND;
vc_query_1 := '';
vc_query_1 := vc_query_1 || ' SELECT stud_apps.appl_no APPL_NO, stud_apps.s_fname S_FNAME, ';
vc_query_1 := vc_query_1 || ' stud_apps.s_mi S_MI, stud_apps.s_lname S_LNAME, ';
vc_query_1 := vc_query_1 || ' stud_apps.appl_date APPL_DATE, look_up.description DESCRIPTION, ' ;
vc_query_1 := vc_query_1 || ' stud_apps.s_ucid S_UCID ' ;
vc_query_1 := vc_query_1 || ' FROM student_apps stud_apps,jobs jbs,lookup look_up' ;
vc_query_1 := vc_query_1 || ' WHERE stud_apps.status in (''o'',''t'') '; --(' || ic_status || ') ' ;
vc_query_1 := vc_query_1 || ' AND jbs.job_no = stud_apps.job_no' ;
vc_query_1 := vc_query_1 || ' AND jbs.status not in (''z '', ''Z'')' ;
vc_query_1 := vc_query_1 || ' AND stud_apps.status = look_up.code ' ;
vc_query_1 := vc_query_1 || ' AND look_up.type = ''st''' ;
vc_query_1 := vc_query_1 || ' AND stud_apps.job_no = ''' || vn_appln_list.job_no || ''' ' ;
vc_query_1 := vc_query_1 || ' ORDER BY appl_date' ;
dbms_output.put_line('Executed Query_2');
OPEN or_applicants_list FOR vc_query_1;
LOOP
FETCH or_applicants_list INTO vn_job_offered;
EXIT WHEN or_applicants_list%NOTFOUND;
va_varray_job_detail(counter).APPL_NO := vn_job_offered.APPL_NO;
va_varray_job_detail(counter).S_FNAME := vn_job_offered.S_FNAME;
va_varray_job_detail(counter).S_MI := vn_job_offered.S_MI;
va_varray_job_detail(counter).S_LNAME := vn_job_offered.S_LNAME;
va_varray_job_detail(counter).APPL_DATE := vn_job_offered.APPL_DATE;
va_varray_job_detail(counter).DESCRIPTION := vn_job_offered.DESCRIPTION;
va_varray_job_detail(counter).S_UCID := vn_job_offered.S_UCID;
counter := counter + 1;
END LOOP; --end of FOR
CLOSE or_applicants_list;
END LOOP; -- end of FETCH
END Admin_Jobs_Offered_Rtr;
END PACK_SEMSADMIN_OFFEREDJOBS;
/{color}
Reqire help plzzzz !!!
Thanks.Originally posted by JDBC Development Team:
It's very similar to other datatype except that it uses OracleTypes.ARRAY typecode and the value is mapped to a oracle.sql.ARRAY instance. The code looks as follows --
cstmt.registerOutParameter (idx, OracleTypes.ARRAY, "VARRAY_TYPE_NAME_HERE");
cstmt.execute ();
ARRAY array = (ARRAY) cstmt.getObject (idx);
Thanks for your reply.
I have to use:-
OracleCallableStatement cs1 = (OracleCallableStatement )conn.prepareCall
( "{call proj_array(?)}" ) ;
for retrieving a collection as an OUT parameter.
This gives me the errors:-
C:\jdbc\VarraySQL.java:0: The method oracle.jdbc2.Blob getBlob(int) declared in class oracle.jdbc.driver.OracleCallableStatement cannot override the method of the same signature declared in interface java.sql.CallableStatement. They must have the same return type.
import java.sql.*;
^
C:\jdbc\VarraySQL.java:0: The method oracle.jdbc2.Array getArray(int) declared in class oracle.jdbc.driver.OracleCallableStatement cannot override the method of the same signature declared in interface java.sql.CallableStatement. They must have the same return type.
import java.sql.*;
^
C:\jdbc\VarraySQL.java:0: The method oracle.jdbc2.Clob getClob(int) declared in class oracle.jdbc.driver.OracleCallableStatement cannot override the method of the same signature declared in interface java.sql.CallableStatement. They must have the same return type.
import java.sql.*;
^
C:\jdbc\VarraySQL.java:0: The method oracle.jdbc2.Ref getRef(int) declared in class oracle.jdbc.driver.OracleCallableStatement cannot override the method of the same signature declared in interface java.sql.CallableStatement. They must have the same return type.
import java.sql.*;
^
How do I get rid of these errors?
null -
Calling API from Microsoft exchange on new user add
Whenever a new user is added on exchange I need to make an API call.
These users are to be also added on a custom application server which can accept a simple REST callHello,
You can consider EWS:
http://msdn.microsoft.com/en-us/library/office/gg274403(v=exchg.80).aspx
Thanks,
Simon Wu
TechNet Community Support -
Calling JavaServlet from PLSQL cartridge
Could I call a Java procedure from a PLSQL Proc using Cartridges?
Hi Justin,
I have a similar requirement where I need to call a java method from PL/SQL code.
Basically we are developing an application using Oracle Apex where we pass the encrypted cookie content to this java method as a parameter and it returns the decrypted cookie content. Using the decrypted cookie info I would handle the authorization in my Apex application.
My company has standardized the cookie encryption/decryption method and thats what the security team provided me with 2 jar files which I am supposed to setup in class path. In one of this .jar files there is a .class file called GateKeeper.class.The whole cookie decryption code is in a method called 'decrypt_cookie' in the class file. Security team has provided me a sample call to this method using java as below :
<%@ page language="java" import="GateKeeper.*, java.util.*, java.io.*, java.net.*"%> …
String retString = GateKeeper.decrypt_cookie(secCookie);
All I need to do is call this piece of code from PL/SQL by passing the cookie value as a parameter, but not sure how to do it.
Following is the code I am using to capture cookie values coming from the browser.
DECLARE
c owa_cookie.cookie;
BEGIN
c := owa_cookie.get ('secCookie');
:P101_TXT_BOX := c.vals (1);
EXCEPTION
WHEN OTHERS
THEN
NULL;
END;Can you explain what you mean by your point (2) "Java code can be declared as an external procedure in Oracle".
I am thinking for my situation your point (3) can be one of the solutions where I would load a java class into database which in turn would call GateKeeper.
Please suggest.
Thanks in advance.
-Raj. -
Hi all,
How can i call another program from a plsql code.
For example opening a notepad in windows from plsql code.
Please give detailed explanation
Thanks
AkshatIf the purpose is scheduling external programs, the best way would be to use the Oracle Scheduler.
[url http://docs.oracle.com/cd/E11882_01/server.112/e25494/schedover.htm#i1106753]Chapter 28, [url http://docs.oracle.com/cd/E11882_01/server.112/e25494/scheduse.htm#i1033533]Chapter 29 and [url http://docs.oracle.com/cd/E11882_01/server.112/e25494/schedadmin.htm#i1007589]Chapter 30 in the Administrator's Guide.
Particularly [url http://docs.oracle.com/cd/E11882_01/server.112/e25494/scheduse002.htm#CIAJCFHE]Techniques for external jobs.
Scheduler jobs is the best way, because security is built into the system - you can use proper O/S credentials, grant rights, etc.
Manually calling external jobs from PL/SQL is not as easy. It is possible using for example some Java stored procedure, but it is more difficult to ensure security - it can too easily open up for your database users to execute too many possible O/S commands ;-)
Edit:
PS: Tim Hall shows some examples of Scheduler usage [url http://www.oracle-base.com/articles/10g/Scheduler10g.php]here - one of the examples is calling a shell script (unix lingo for batch job ;-) )
Edited by: Kim Berg Hansen on Nov 30, 2011 12:56 PM
Maybe you are looking for
-
Iphone 4 - updated it to ios6 - voice memos deleted
i have an iphone 4 and i updated it to ios6 without itunes and now all of my voice memos deleted, any one have the same problem? and what can i do? i don't have any back up from my voice memos. thank you
-
Dear all I am using forms 10G. I have a form and I want to compile it in Unix . Can you please tell me the solution step by step . I was reading the old blogs here ,and tried the same but did not get the solution . Please help me .
-
Hi, Currently XI is pushing the data to Siebel in UTF-8. But Siebel wants only in UTF-16 format. How can I change this in XI. Thanks Sudheer
-
Hi, is there a kind of document "Design Guidelines" like e.g. Java Look and Feel Design Guidelines ? Michel
-
HT1688 So i realized that I deleted the standard Clock App on my
I realized that I accidentally deleted the standard Clock App from my iphone..I was not aware that this app could even be deleted but one day, it was no longer on my phone! How can i get this app back?