Bug: Migration Parameters Of A Procedure Call
Hi,
the bug described in(http://dermotoneill.blogspot.com/2008/05/parameters-of-procedure-call.html) keeps showing up in the new versions of SQLDeveloper.
So it's also in the current version of 2.1 (Version 2.1.1.64 Build MAIN-64.45)!
It can be fixed like described in the Blog.
Where can this bug be reported in a way that it will be fixed permanently?
Thanks
Dominik
Hi Dermot,
I think it's still an issue as I experience. Even in Version 1.5.1 Build MAIN-5440! I did used the Workaround like you described and only then it is working correctly.
Thanks for your help
Dominik
Here is what I'm migrating:
--That's the MSSQL Procedure I'm migrating
CREATE PROCEDURE [dbo].[CFGGetFilterSetting]
@ID uniqueidentifier
AS
SELECT
[ID],
[UserName],
[FilterDefinitionID],
[MaxNrFilterResult],
[AutoApplyAtStartup]
FROM
[dbo].[CFG_FilterSetting]
WHERE
[ID] = @ID
-------- Calling stored procedure for Child Collection 1
EXEC CFGGetFilterCriteriaValues @ID = @ID
--That's what I got with out the Fix described in the Blog
CREATE OR REPLACE PROCEDURE CFGGetFilterSetting
v_ID IN CHAR DEFAULT NULL ,
cv_1 IN OUT SYS_REFCURSOR,
cv_2 IN OUT SYS_REFCURSOR
AS
BEGIN
OPEN cv_1 FOR
SELECT ID,
UserName,
FilterDefinitionID,
MaxNrFilterResult,
AutoApplyAtStartup
FROM CFG_FilterSetting
WHERE ID = v_ID;
-------- Calling stored procedure for Child Collection 1
CFGGetFilterCriteriaValues(v_IDv_ID => v_ID,
cv_1 => cv_2);
END;
--That's the result after the Fix
CREATE OR REPLACE PROCEDURE CFGGetFilterSetting
v_ID IN CHAR DEFAULT NULL ,
cv_1 OUT SYS_REFCURSOR,
cv_2 OUT SYS_REFCURSOR
AS
BEGIN
OPEN cv_1 FOR
SELECT ID,
UserName,
FilterDefinitionID,
MaxNrFilterResult,
AutoApplyAtStartup
FROM CFG_FilterSetting
WHERE ID = v_ID;
-------- Calling stored procedure for Child Collection 1
CFGGetFilterCriteriaValues(v_ID => v_ID,
cv_1 => cv_2);
END;
Here the complete Version Info of the SqlDeveloper:
About
Oracle SQL Developer 2.1.1.64
Version 2.1.1.64
Build MAIN-64.45
Copyright © 2005,2009 Oracle. All Rights Reserved.
IDE Version: 11.1.1.2.36.55.30
Product ID: oracle.sqldeveloper
Product Version: 11.1.1.64.45
Version
Component Version
========= =======
Java(TM) Platform 1.6.0_11
Oracle IDE 2.1.1.64.45
Versioning Support 2.1.1.64.45
Extensions
Name Identifier Version Status
==== ========== ======= ======
Check For Updates oracle.ide.webupdate 11.1.1.2.36.55.30 Loaded
Code Editor oracle.ide.ceditor 11.1.1.2.36.55.30 Loaded
Database Connection Support oracle.jdeveloper.db.connection 11.1.1.2.36.55.30 Loaded
Database Object Explorers oracle.ide.db.explorer 11.1.1.2.36.55.30 Loaded
Database UI oracle.ide.db 11.1.1.2.36.55.30 Loaded
Diff/Merge oracle.ide.diffmerge 11.1.1.2.36.55.30 Loaded
Extended IDE Platform oracle.javacore 11.1.1.2.36.55.30 Loaded
External Tools oracle.ide.externaltools 11.1.1.2.36.55.30 Loaded
File Support oracle.ide.files 11.1.1.2.36.55.30 Loaded
File System Navigator oracle.sqldeveloper.filenavigator 11.1.1.64.45 Loaded
Help System oracle.ide.help 11.1.1.2.36.55.30 Loaded
History Support oracle.jdeveloper.history 11.1.1.2.36.55.30 Loaded
Import/Export Support oracle.ide.importexport 11.1.1.2.36.55.30 Loaded
Index Migrator support oracle.ideimpl.indexing-migrator 11.1.1.2.36.55.30 Loaded
JDeveloper Runner oracle.jdeveloper.runner 11.1.1.2.36.55.30 Loaded
Log Window oracle.ide.log 11.1.1.2.36.55.30 Loaded
Mac OS X Adapter oracle.ideimpl.apple 11.1.1.2.36.55.30 Loaded
Navigator oracle.ide.navigator 11.1.1.2.36.55.30 Loaded
Object Gallery oracle.ide.gallery 11.1.1.2.36.55.30 Loaded
Object Viewer oracle.sqldeveloper.oviewer 11.1.1.64.45 Loaded
Oracle Data Modeler Reports oracle.sqldeveloper.datamodeler_reports 11.1.1.64.45 Loaded
Oracle Database Browser oracle.sqldeveloper.thirdparty.browsers 11.1.1.64.45 Loaded
Oracle IDE oracle.ide 11.1.1.2.36.55.30 Loaded
Oracle SQL Developer oracle.sqldeveloper 11.1.1.64.45 Loaded
Oracle SQL Developer Data Modeler Viewer oracle.datamodeler 2.0.0.584 Loaded
Oracle SQL Developer Extras oracle.sqldeveloper.extras 1.1.1.64.45 Loaded
Oracle SQL Developer Migrations oracle.sqldeveloper.migration 11.1.1.64.45 Loaded
Oracle SQL Developer Migrations - Antlr3 Translation Core oracle.sqldeveloper.migration.translation.core_antlr3 11.1.1.64.45 Loaded
Oracle SQL Developer Migrations - DB2 oracle.sqldeveloper.migration.db2 11.1.1.64.45 Loaded
Oracle SQL Developer Migrations - Microsoft Access oracle.sqldeveloper.migration.msaccess 11.1.1.64.45 Loaded
Oracle SQL Developer Migrations - MySQL oracle.sqldeveloper.migration.mysql 11.1.1.64.45 Loaded
Oracle SQL Developer Migrations - SQLServer oracle.sqldeveloper.migration.sqlserver 11.1.1.64.45 Loaded
Oracle SQL Developer Migrations - Sybase oracle.sqldeveloper.migration.sybase 11.1.1.64.45 Loaded
Oracle SQL Developer Migrations - Teradata oracle.sqldeveloper.migration.teradata 11.1.1.64.45 Loaded
Oracle SQL Developer Migrations - Translation Core oracle.sqldeveloper.migration.translation.core 11.1.1.64.45 Loaded
Oracle SQL Developer Migrations - Translation Db2 oracle.sqldeveloper.migration.translation.db2 11.1.1.64.45 Loaded
Oracle SQL Developer Migrations - Translation UI oracle.sqldeveloper.migration.translation.gui 11.1.1.64.45 Loaded
Oracle SQL Developer Reports oracle.sqldeveloper.report 11.1.1.64.45 Loaded
Oracle SQL Developer SearchBar oracle.sqldeveloper.searchbar 11.1.1.64.45 Loaded
Oracle SQL Developer TimesTen oracle.sqldeveloper.timesten 2.0.0.64.45 Loaded
Oracle SQL Developer Unit Test oracle.sqldeveloper.unit_test 11.1.1.64.45 Loaded
Oracle SQL Developer Worksheet oracle.sqldeveloper.worksheet 11.1.1.64.45 Loaded
Oracle XML Schema Support oracle.sqldeveloper.xmlschema 11.1.1.64.45 Loaded
PROBE Debugger oracle.jdeveloper.db.debug.probe 11.1.1.2.36.55.30 Loaded
Peek oracle.ide.peek 11.1.1.2.36.55.30 Loaded
Persistent Storage oracle.ide.persistence 11.1.1.2.36.55.30 Loaded
QuickDiff oracle.ide.quickdiff 11.1.1.2.36.55.30 Loaded
Replace With oracle.ide.replace 11.1.1.2.36.55.30 Loaded
Runner oracle.ide.runner 11.1.1.2.36.55.30 Loaded
Snippet Window oracle.sqldeveloper.snippet 11.1.1.64.45 Loaded
Sql Monitoring Project oracle.sqldeveloper.sqlmonitor 11.1.1.64.45 Loaded
Tuning oracle.sqldeveloper.tuning 11.1.1.64.45 Loaded
User Extensions Support oracle.sqldeveloper.userextensions 11.1.1.64.45 Loaded
VHV oracle.ide.vhv 11.1.1.2.36.55.30 Loaded
Versioning Support oracle.jdeveloper.vcs 11.1.1.2.36.55.30 Loaded
Versioning Support for Subversion oracle.jdeveloper.subversion 11.1.1.2.36.55.30 Loaded
Virtual File System oracle.ide.vfs 11.1.1.2.36.55.30 Loaded
Web Browser and Proxy oracle.ide.webbrowser 11.1.1.2.36.55.30 Loaded
oracle.ide.indexing oracle.ide.indexing 11.1.1.2.36.55.30 Loaded
Similar Messages
-
BRFplus - Procedure Call Expression
Hi Experts,
Is it possible to map the importing parameters of Procedure Call. I can map the exporting parameters that have to be sent to the Procedure Call. I'd like to know if I can import multiple parameters from a Procedure Call?
Also if I've a Procedure Call that imports multiple parameters and I need to import just one of them. How can I do that?
Best Regards.Hi,
you can map the importing parameters just like all other parameters. They are available in the UI where you can find the exporting parameters. If you don't see any of the parameters they are maybe filtered, as we don't support all kinds of parameters (Raw, any and reference types).
Best regards Michael -
Hello,
I am getting a new message this morning creating a view:
The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Too many parameters were provided in this RPC request. The maximum is 2100
Any ideas on this?
Thanks,
DOm
System Center Operations Manager 2007 / System Center Configuration Manager 2007 R2 / Forefront Client Security / Forefront Identity ManagerHi,
Based on my research, this is a limitation of sql server.
http://msdn.microsoft.com/en-us/library/ms143432.aspx
And please refer to the below article to find a fix for this issue:
How to fix SQL error: "Too many parameters were provided in this RPC request"
http://blogs.msdn.com/b/emeadaxsupport/archive/2009/09/01/how-to-fix-sql-error-too-many-parameters-were-provided-in-this-rpc-request.aspx
Regards,
Yan Li
Regards, Yan Li -
HANA procedure call n times with different parameters
Hi,
I am implementing some procedures on sql script and due to parallelization reasons i would like to call the same procedure n times with different parameters being the procedure name one of the parameters.
Which method would you advise me (xsjs, ...)?
Thanks in advanceThis is a known issue. We plan to have a fix in a future release but there is currently no ETA that I can share with you. I would recommend that you log an SR with support so that we can track the fact that this issue is affecting you.
Chris -
BRF+ - Help Needed for Procedure Call for FM RFC_READ_TABLE
Dear Guru,
This is meant to be a prototype. Scenario is this based on a Centralize BRF+ Services with Satalite Systems. In this context lets assume two SAP Box. Box A (SAP ERP), Box B (BRF+ Server 7.02 NW SP6)
Busienss Rule is simple - Expose Customer Validation Service in BRF+ with Input of One Field (KUNNR) and Output of BOOLEAN (Yes, No).
Suggested Function Module - RFC_READ_TABLE with Destination in Box A(SAP ERP).
RFC_READ_TABLE
My question is:
1. Is Procedure Call Expression the right object to use for RFC?
2. Where can I specify the RFC Destination?
3. If not, should I create a New Function Module Wrapper that meant to call RFC_READ_TABLE with Destination?
4. Procedure Call Expression WebDynpro, I am not able to specify "Assigned Value" for Parameter "OPTIONS" which is a table.
I am able to specify other Parameters such as "QUERY_TABLE" and "OPTIONS"
Thanks
Leonard
Edited by: Leonard Tan on Mar 19, 2011 6:26 AMI would create a local wrapper FM on BOX B to call into Box A for the table read. Maybe this would also allow to buffer the data locally in case it has to be read multiple times.
The procedure call as of today does not allow to do remote calls. Therefore you have no option to specify an RFC destination.
For the use of tables maybe create an error message. I could not follow your instructions.
Also consider to implement SP7 as soon as it is available. We did quite some corrections. -
Error 'ORA-01403 no data found', if a procedure called through $Universe
Hello,
we use at our customer the scheduling software $Universe. The problem follows is happend at calling PL/SQL-procedures within SQL*Plus:
Within the calling procedur another subprogram will be called. This program crashed on select of currval with the error 'ORA-01403 no data found'. This error happens only, if the procedure called through $Universe. If the procedure called directly from SQL*Plus or about a unix shell-script, no error happens.
About the command "select saddr,sid,serial# from sys.V_$SESSION where
username ='xxx';" we select the Session_ID's. These are identically before and after call of the procedure!
Do you have an idea, how the problem can be?
Next information about OS, releases, settings of Oracle-Session-Parameters, and the crashing procedure:
SQL*Plus: Release 8.1.6.0.0 - Production on Fri Mar 15 13:25:05 2002
(c) Copyright 1999 Oracle Corporation. All rights reserved.
Connected to:
Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production
OS: HP-UX11
ORACLE-Server NLS-parameters on HP-UX:
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_CHARACTERSET WE8DEC
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZH:TZM
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZH:T
NLS_DUAL_CURRENCY $
NLS_NCHAR_CHARACTERSET WE8DEC
NLS_COMP BINARY
Windows-desktop NLS-parameters:
ALTER SESSION set NLS_LANGUAGE = 'GERMAN';
ALTER SESSION set NLS_TERRITORY = 'GERMANY';
ALTER SESSION set NLS_ISO_CURRENCY = 'GERMANY';
ALTER SESSION set NLS_NUMERIC_CHARACTERS = ',.';
ALTER SESSION set NLS_CALENDAR = 'GREGORIAN';
ALTER SESSION set NLS_DATE_FORMAT = 'DD/MM/YY';
ALTER SESSION set NLS_DATE_LANGUAGE = 'GERMAN';
ALTER SESSION set NLS_SORT = 'GERMAN';
ALTER SESSION set NLS_TIME_FORMAT = 'HH24:MI:SSXFF';
ALTER SESSION set NLS_TIMESTAMP_FORMAT = 'DD.MM.RR HH24:MI:SSXFF';
ALTER SESSION set NLS_TIME_TZ_FORMAT = 'HH24:MI:SSXFF TZH:TZM';
ALTER SESSION set NLS_TIMESTAMP_TZ_FORMAT = 'DD.MM.RR HH24:MI:SSXFF
TZH:TZM';
ALTER SESSION set NLS_DUAL_CURRENCY = '?';
ALTER SESSION set NLS_COMP = 'BINARY';
PROCEDURE PROC_NEW_ID (p_value IN NUMBER,
p_field IN VARCHAR2,
p_table IN VARCHAR2,
p_currval OUT NUMBER)
IS
v_stmt VARCHAR2(200);
v_currval NUMBER;
BEGIN
-- Bildung des SQL-Statements.
v_stmt := 'INSERT INTO '||p_table|| '('|| p_field || ') VALUES
('||p_value||')';
-- Ausfuehren des SQL-Statements.
EXECUTE IMMEDIATE v_stmt;
COMMIT;
-- Bildung des SQL-Statements.
v_stmt := 'SELECT SEQ_'|| p_table || '.CURRVAL FROM DUAL';
-- Ausfuehren des SQL-Statements.
EXECUTE IMMEDIATE v_stmt INTO v_currval;
-- Wertrueckgabe
p_currval := NVL(v_currval,0);
EXCEPTION
WHEN OTHERS THEN
pkg_mira_protokoll.proc_write_error_fwd
(pkg_mira_consts.act_error,
SQLCODE,
SQLERRM(SQLCODE),
'PROC_NEW_ID');
p_currval := 0;
RAISE;
END;
Thanks for your request!
Best regards
Esser Office Consulting KG
J|rgen EsserThis forum is for posting feedback about the OTN site.
The best place for your question is probably a Portal forum.
There is a list of Portal forums here:
http://forums.oracle.com/forums/index.jsp?cat=13 -
Remote Stored Procedure Call Dispatcher WEB WERVICE
Hello all,
Environment: Windows OS, Oracle 10g, mod_plsql
I am looking for solutions to the following problem:
A way to dispatch calls to stored procedures from client to server with a minimal impact on performance.
We are looking at two possible solutions:
1) Making a call to a Remote Stored Procedure Call Dispatcher (RSPCDispatcher) stored procedure through mod_plsql.
2) Making a call to a Remote Stored Procedure Call Dispatcher (RSPCDispatcher) stored procedure through a web service.
Solution 1) is not the preferred one as you may already know that mod_plsql will not be supported starting 12g.
Solution 2) is the one we prefer as we believe that web services will be ever more supported in the future. When we move to 11g we may turn this web service into a native one (avoiding overhead in the OC4J for hosting the web service etc.).
We are looking for code examples and information pointers of how we could implement this dispatcher as a stored procedure in a DB package. We know that the implementation should be similar to the one done for mod_plsql in the OWA schema but the code there is obfuscated, so we could not borrow ideas from there.
We are not sure how to deal with the generalization of the above stated problem. We need to be able to pass to this dispatcher the stored procedure package and name we are invoking, ordered list of parameters (or parameters map), and the transport strategy (XML, JSON, etc.).
Basically, we are notsure how to deal with the USING clause of the EXECUTE IMMEDIATE statement. We can dynamically generate the SQL statement corresponding to the stored procedure we want to call, but we are not sure how to bind the parameters we are passing?
Also, we know that EXECUTE IMMEDIATE may be slow sometimes. So if could avoid it, this could further improve performance.
Perhaps the run-time generalized stored procedure execution may not be what we are looking for?! Perhaps we should include several design-time steps?! What about a script that given a package name (or just a single stored procedure) would generate a wrapper package which stored procudures' names would correspond to their respective counterparts in the given package which would take two parameters - the list of parameters in some sort of format, and the transport (content delivery strategy) and would return the result in the given content delivery strategy?! This script may also define the XSD of the XML message a stored procedure is called with (the parameter map) as well as the XSD of the XML result the stored procedure returns. Also the script could generate client code with the given language strategy (Java, .NET, etc.) for calling the RSPCDispatcher web service.
We request the following from the Oracle community folks:
a) Please, give us any relevant information that could be helpful to resolve this problem.
b) Any resource of how to inspect stored procedures in a package, its parameters, parameter types and direction (IN, OUT, or INOUT), etc.
Thank you very much in advance.
Regards,
GeorgiHello all,
Environment: Windows OS, Oracle 10g, mod_plsql
I am looking for solutions to the following problem:
A way to dispatch calls to stored procedures from client to server with a minimal impact on performance.
We are looking at two possible solutions:
1) Making a call to a Remote Stored Procedure Call Dispatcher (RSPCDispatcher) stored procedure through mod_plsql.
2) Making a call to a Remote Stored Procedure Call Dispatcher (RSPCDispatcher) stored procedure through a web service.
Solution 1) is not the preferred one as you may already know that mod_plsql will not be supported starting 12g.
Solution 2) is the one we prefer as we believe that web services will be ever more supported in the future. When we move to 11g we may turn this web service into a native one (avoiding overhead in the OC4J for hosting the web service etc.).
We are looking for code examples and information pointers of how we could implement this dispatcher as a stored procedure in a DB package. We know that the implementation should be similar to the one done for mod_plsql in the OWA schema but the code there is obfuscated, so we could not borrow ideas from there.
We are not sure how to deal with the generalization of the above stated problem. We need to be able to pass to this dispatcher the stored procedure package and name we are invoking, ordered list of parameters (or parameters map), and the transport strategy (XML, JSON, etc.).
Basically, we are notsure how to deal with the USING clause of the EXECUTE IMMEDIATE statement. We can dynamically generate the SQL statement corresponding to the stored procedure we want to call, but we are not sure how to bind the parameters we are passing?
Also, we know that EXECUTE IMMEDIATE may be slow sometimes. So if could avoid it, this could further improve performance.
Perhaps the run-time generalized stored procedure execution may not be what we are looking for?! Perhaps we should include several design-time steps?! What about a script that given a package name (or just a single stored procedure) would generate a wrapper package which stored procudures' names would correspond to their respective counterparts in the given package which would take two parameters - the list of parameters in some sort of format, and the transport (content delivery strategy) and would return the result in the given content delivery strategy?! This script may also define the XSD of the XML message a stored procedure is called with (the parameter map) as well as the XSD of the XML result the stored procedure returns. Also the script could generate client code with the given language strategy (Java, .NET, etc.) for calling the RSPCDispatcher web service.
We request the following from the Oracle community folks:
a) Please, give us any relevant information that could be helpful to resolve this problem.
b) Any resource of how to inspect stored procedures in a package, its parameters, parameter types and direction (IN, OUT, or INOUT), etc.
Thank you very much in advance.
Regards,
Georgi -
Hello,
The application has been made by Visual Basic 6.0 sp5, it uses MDAC 2.5. RDBMS version is 9.2, server OS Aix 5.2, client OS XP Professional SP2.
In other ways the application is working properly, but when a user tries to start a report which calls a procedure through ODBC the following happens:
(1) The workstation processor starts working under a permanent load of 100%.
(2) The ODBC trace stops here:
{? = call XXXX_YYYY.ZZZ_AAAAAAAA
['BB_BBBB','200511','200511','CCC',null,null,'null','null'}
(3) The database listener trace (admin, on the server) stops here (287 rows follow which are the result of trying to start a report):
nsevwait: 1 newly-posted event(s)
nsevfnt: cxd: 0x1057c390 stage 0: NT events set:
CONNECTION REQUEST
nsevfnt: cxd: 0x1057c390 stage 0: NS events set:
INCOMING CALL
nsevwait: event is 0x1, on 3
nsevwait: 1 posted event(s)
nsglhe: entry
nsmal: 752 bytes at 0x11060b090
nsmal: 2800 bytes at 0x110616030
nsopen: opening transport...
nttcon: entry
nttcon: toc = 3
nttcnp: entry
ntvlin: entry
ntvlin: exit
nttcnp: Validnode Table IN use; err 0x0
nttcnp: getting sockname
nttcnp: exit
nttcnr: entry
nttcnr: waiting to accept a connection.
nttcnr: getting sockname
nttvlser: entry
nttvlser: valid node check on incoming node xxx.yyy.z.50
nttvlser: Accepted Entry: xxx.yyy.z.50
nttcnr: exit
nttcon: set TCP_NODELAY on 18
nttcon: exit
nsopen: transport is open
nsnainit: answer
nsnasvnainfo: NA disabled for this connection
nainit: entry
nagblini: entry
nau_gin: entry
nau_gparams: entry
nam_gbp: Reading parameter "sqlnet.authentication_required" from parameter file
nam_gbp: Parameter not found
nau_gparams: Using default value "FALSE"
nau_gslf: entry
nam_gic: entry
nam_gic: Counting # of items in "sqlnet.authentication_services" parameter
nam_gic: Parameter not found
nam_gic: Found 0 items
nam_gic: exit
nau_gslf: Using default value "all available adapters"
nauss_set_state: entry
nauss_set_state: exit
nau_gslf: exit
nau_gparams: exit
nau_gin: exit
nagblini: exit
na_saveprot: entry
na_saveprot: exit
nacomin: entry
nas_init: entry
nas_init: exit
nau_ini: entry
naugcp_get_connect_parameters: entry
nauss_set_state: entry
nauss_set_state: exit
naugcp_get_connect_parameters: exit
nau_gettab: entry
nau_tadv: entry
nau_fad: entry
nau_fad: exit
nau_fad: entry
nau_fad: exit
nau_fad: entry
nau_fad: exit
nau_fad: entry
nau_fad: exit
nau_tadv: exit
nau_gettab: exit
nau_sini: entry
nau_sini: exit
nau_ini: exit
naeeinit: entry
nam_gbp: Reading parameter "SQLNET.FIPS_140" from parameter file
nam_gbp: Parameter not found
nam_gnsp: Reading parameter "SQLNET.ENCRYPTION_SERVER" from parameter file
nam_gnsp: Parameter not found
naequad: Using default value "ACCEPTED"
nam_gic: entry
nam_gic: Counting # of items in "SQLNET.ENCRYPTION_TYPES_SERVER" parameter
nam_gic: Parameter not found
nam_gic: exit
naesno: Using default value "all available algorithms"
naeshow: entry
naeshow: exit
naeeinit: exit
naecinit: entry
nam_gnsp: Reading parameter "SQLNET.CRYPTO_CHECKSUM_SERVER" from parameter file
nam_gnsp: Parameter not found
naequad: Using default value "ACCEPTED"
nam_gic: entry
nam_gic: Counting # of items in "SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER" parameter
nam_gic: Parameter not found
nam_gic: exit
naesno: Using default value "all available algorithms"
naeshow: entry
naeshow: exit
naecinit: exit
nadisc: entry
nacomtm: entry
nacompd: entry
nacompd: exit
nacompd: entry
nacompd: exit
nacomtm: exit
nas_dis: entry
nas_dis: exit
nau_dis: entry
nau_dis: exit
naeetrm: entry
naeetrm: exit
naectrm: entry
naectrm: exit
nagbltrm: entry
nau_gtm: entry
nau_gtm: exit
nagbltrm: exit
nadisc: exit
nainit: exit
nsnainit: NS Connection version: 311
nsnainit: inf->nsinfflg[0]: 0xd inf->nsinfflg[1]: 0xd
nsnainit: "or" info flags: 0xd Translations follow:
native service(s) is (are) wanted
NA disabled remotely for this connection
NA services unavailable on both processes - negotiation not needed
nsnainit: "or" info flags: 0xd Translations follow:
native service(s) is (are) wanted
NA disabled remotely for this connection
NA services unavailable on both processes - negotiation not needed
"and" info flags: 0xd Translations follow:
native service(s) is (are) wanted
NA disabled remotely for this connection
NA services unavailable on both processes - negotiation not needed
nsopen: global context check-in (to slot 11) complete
nsopen: lcl[0]=0x7fe9ff, lcl[1]=0x12003, gbl[0]=0x7e3f, gbl[1]=0x2001, tdu=32767, sdu=8192
nsdo: cid=11, opcode=65, bl=0, what=0, uflgs=0x0, cflgs=0x2
nsdo: rank=64, nsctxrnk=0
nsdo: nsctx: state=7, flg=0x4200, mvd=0
nsdo: nsctxrnk=0
nsanswer: deferring connect attempt; at stage 5
nsevreg: begin registration process for 11
nsevreg: sgt=0, evn=1, evt[2]=0x0
nsevreg: begin notification process for 11
nsevreg: rdm=0, sgt=0, evt[0]=0x20, [1]=0x20, [2]=0x0, nrg=0
nsevreg: registering for 0x20
nsglhe: exit
nsevwait: 10 registered connection(s)
nsevwait: 0 pre-posted event(s)
nsevwait: waiting for transport event (1 thru 11)...
nsevwait: 1 newly-posted event(s)
nsevfnt: cxd: 0x10606bb0 stage 5: NT events set:
READ
nsevfnt: cxd: 0x10606bb0 stage 5: NS events set:
OUTGOING CALL COMPLETE
nsevdansw: at STAGE 5
nsdo: cid=11, opcode=68, bl=2040, what=8, uflgs=0x0, cflgs=0x3
nsdo: rank=64, nsctxrnk=0
nsdo: nsctx: state=14, flg=0x4204, mvd=0
nsdo: gtn=0, gtc=0, ptn=10, ptc=8163
nscon: doing connect handshake...
nscon: recving a packet
nsprecv: reading from transport...
nttrd: entry
nttrd: socket 18 had bytes read=262
nttrd: exit
nsprecv: 262 bytes from transport
nsprecv: tlen=262, plen=262, type=1
nscon: got NSPTCN packet
nsconneg: vsn=313, lov=300, opt=0x0, sdu=2048, tdu=32767, ntc=0x860e
nsconneg: vsn=311, gbl=0x1, sdu=2048, tdu=32767
nscon: got 204 bytes connect data
nsdo: nsctxrnk=0
nsevdansw: exit
nttctl: entry
nttctl: Clearing non-blocking mode
nsevwait: event is 0x20, on 11
nsevwait: 1 posted event(s)
nsglhe: entry
nsglfc: Assume establishing a connection: look for SID
nsglfc: command = establish
nttaddr2bnd: entry
nttaddr2bnd: exit
nlpcaini: entry
nlpcaini: prg = /oracle9/app/product/9.2.0/bin/oracle
nlpcaini: arg[0] = oracleaaaaa
nlpcaini: arg[1] = (LOCAL=NO)
nlpcaini: env[0] = _=/ddddddd/app/product/9.0.2/bin/lsnrctl
nlpcaini: env[1] = TMPDIR=/lisatmp
nlpcaini: env[2] = LANG=en_US
nlpcaini: env[3] = LOGIN=ddddddd
nlpcaini: env[4] = PATH=/ddddddd/app/product/9.0.2/dcm/bin:/ddddddd/app/product/9.0.2/opm/bin:/ddddddd/app/product/9.0.2/bin:/usr/local/bin:/usr/ccs/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/home/ddddddd/bin:/usr/bin/X11:/sbin:.
nlpcaini: env[5] = NLS_LANG=American_America.we8iso8859P1
nlpcaini: env[6] = ORACLE_BASE=/ddddddd/app/product
nlpcaini: env[7] = LC__FASTMSG=true
nlpcaini: env[8] = CGI_DIRECTORY=/var/docsearch/cgi-bin
nlpcaini: env[9] = LOGNAME=ddddddd
nlpcaini: env[10] = TMP=/lisatmp
nlpcaini: env[11] = USER_NLS_LANG=Finnish_Finland.we8iso8859P1
nlpcaini: env[12] = MAIL=/usr/spool/mail/ddddddd
nlpcaini: env[13] = LOCPATH=/usr/lib/nls/loc
nlpcaini: env[14] = PS1=$PWD[SID=$ORACLE_SID]>$
nlpcaini: env[15] = LDR_CNTRL=MAXDATA=0x20000000
nlpcaini: env[16] = DOCUMENT_SERVER_MACHINE_NAME=localhost
nlpcaini: env[17] = USER=ddddd
nlpcaini: env[18] = AUTHSTATE=files
nlpcaini: env[19] = TNS_ADMIN=/ddddddd/app/product/9.0.2/network/admin
nlpcaini: env[20] = DEFAULT_BROWSER=netscape
nlpcaini: env[21] = DISPLAY=cccc:0.0
nlpcaini: env[22] = SHELL=/usr/bin/ksh
nlpcaini: env[23] = ODMDIR=/etc/objrepos
nlpcaini: env[24] = DOCUMENT_SERVER_PORT=49213
nlpcaini: env[25] = ORA_NLS33=/ddddddd/app/product/9.0.2/ocommon/nls/admin/data
nlpcaini: env[26] = HOME=/home/ddddddd
nlpcaini: env[27] = TERM=dumb
nlpcaini: env[28] = MAILMSG=[YOU HAVE NEW MAIL]
nlpcaini: env[29] = ORACLE_HOME=/oracle9/app/product/9.2.0
nlpcaini: env[30] = ITECONFIGSRV=/etc/IMNSearch
nlpcaini: env[31] = PWD=/home/ddddddd
nlpcaini: env[32] = DOCUMENT_DIRECTORY=/usr/docsearch/html
nlpcaini: env[33] = TZ=WET-2WET-3,M3.5.0/03:00:00,M10.5.0/04:00:00
nlpcaini: env[34] = ITECONFIGCL=/etc/IMNSearch/clients
nlpcaini: env[35] = ITE_DOC_SEARCH_INSTANCE=search
nlpcaini: env[36] = A__z=! LOGNAME
nlpcaini: env[37] = ORA_NET2_DESC=4,7
nlpcaini: env[38] = LIBPATH=/ddddddd/app/product/9.0.2/lib32:/ddddddd/app/product/9.0.2/lib
nlpcaini: env[39] = NLSPATH=/usr/lib/nls/msg/%L/%N:/usr/lib/nls/msg/%L/%N.cat
nlpcaini: env[40] = ORACLE_SID=aaaaa
nlpcaini: exit
nsbeqaddr: connecting...
ntpcon: entry
ntpcon: toc = 1
sntpcall: entry
sntpcall: About to exec /oracle9/app/product/9.2.0/bin/oracle
sntpcall: environ[41] = ""
sntpcall: detaching from parent with additional fork
sntpcall: result string is NTP0 33240
sntpcall: hdl[IR]=23, hdl[IW]=22
sntpcall: exit
ntpcon: NT layer IPC connection has been established
ntpcon: exit
nttaddr2bnd: entry
nttaddr2bnd: exit
nsbeqaddr: doing connect handshake...
nsbequeath: doing connect handshake...
ntpwr: entry
ntpwr: exit
ntpwr: entry
ntpwr: exit
ntpwr: entry
ntpwr: exit
ntprd: entry
ntprd: exit
ntprd: entry
ntprd: exit
nsbequeath: NSE=0
ntpdisc: entry
ntpdisc: exit
nsbeqaddr: connect handshake is complete
nstimarmed: no timer allocated
nsdo: cid=11, opcode=98, bl=0, what=0, uflgs=0x40, cflgs=0x2
nsdo: rank=64, nsctxrnk=0
nsdo: nsctx: state=2, flg=0x4200, mvd=0
nsevunreg: cid=11, sgt=0, rdm=0
nsevunreg: 9 registered connection(s)
nsdo: nsctxrnk=0
nsclose: closing transport
nttdisc: entry
nttdisc: Closed socket 18
nttdisc: exit
nsclose: global context check-out (from slot 11) complete
nsmfr: 2800 bytes at 0x110616030
nsmfr: 752 bytes at 0x11060b090
nsglhe: exit
nsevwait: 9 registered connection(s)
nsevwait: 0 pre-posted event(s)
nsevwait: waiting for transport event (1 thru 10)...
The procedure call through ODBC is working when we use Oracle9i Client.
So. All comments are much appreciated!
Terhoin addition:
my main problem is that Oracle ODBC driver does not understand something like
{call types.test_procedure (?, ?,,?)}
to pass not all parameters (I whant to use default value for some of parameters) -
I'm replicating between two servers in two sites (Server A - Server 2012 R2 STD, Server B - Server 2008 R2) over a VPN (Sonicwall Firewall). Though the initial replication seems to be
happening it is very slow (the folder in question is less than 3GB). I'm seeing these in the event viewer every few minutes:
The DFS Replication service is stopping communication with partner PPIFTC for replication group FTC due to an error. The service will retry the connection periodically.
Additional Information:
Error: 1726 (The remote procedure call failed.)
and then....
The DFS Replication service successfully established an inbound connection with partner PPIFTC for replication group FTC.
Here are all my troubleshooting steps (keep in mind that our VPN is going through a SonicWall <--I increased the TCP timeout to 24 hours):
-Increased TCP Timeout to 24 hours
-Added the following values on both sending and receiving members and rebooted server
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Value =DisableTaskOffload
Type = DWORD
Data = 1
Value =EnableTCPChimney
Type = DWORD
Data = 0
Value =EnableTCPA
Type = DWORD
Data = 0
Value =EnableRSS
Type = DWORD
Data = 0
---------------------------------more troubleshooting--------------------------
-Disabled AntiVirus on both members
-Made sure DFSR TCP ports 135 & 5722 are open
-Installed all hotfixes for 2008 R2 (http://support.microsoft.com/kb/968429) and rebooted
-Ran NETSTAT –ANOBP TCP and the DFS executable results are listed below:
Sending Member:
[DFSRs.exe]
TCP 10.x.x.x:53 0.0.0.0:0
LISTENING 1692
[DFSRs.exe]
TCP 10.x.x.x:54669
10.x.x.x:5722 TIME_WAIT 0
TCP 10.x.x.x:54673
10.x.x.x:5722 ESTABLISHED 1656
[DFSRs.exe]
TCP 10.x.x.x:64773
10.x.x.x:389 ESTABLISHED 1692
[DFSRs.exe]
TCP 10.x.x.x:64787
10.x.x.x:389 ESTABLISHED 1656
[DFSRs.exe]
TCP 10.x.x.x:64795
10.x.x.x:389 ESTABLISHED 2104
Receiving Member:
[DFSRs.exe]
TCP 10.x.x.x:56683
10.x.x.x:389 ESTABLISHED 7472
[DFSRs.exe]
TCP 10.x.x.x:57625
10.x.x.x:54886 ESTABLISHED 2808
[DFSRs.exe]
TCP 10.x.x.x:61759
10.x.x.x:57625 TIME_WAIT 0
TCP 10.x.x.x:61760
10.x.x.x:57625 TIME_WAIT 0
TCP 10.x.x.x:61763
10.x.x.x:57625 TIME_WAIT 0
TCP 10.x.x.x:61764
10.x.x.x:57625 TIME_WAIT 0
TCP 10.x.x.x:61770
10.x.x.x:57625 TIME_WAIT 0
TCP 10.x.x.x:61771
10.x.x.x:57625 TIME_WAIT 0
TCP 10.x.x.x:61774
10.x.x.x:57625 TIME_WAIT 0
TCP 10.x.x.x:61775
10.x.x.x:57625 TIME_WAIT 0
TCP 10.x.x.x:61776
10.x.x.x:57625 TIME_WAIT 0
TCP 10.x.x.x:61777
10.x.x.x:57625 TIME_WAIT 0
TCP 10.x.x.x:61778
10.x.x.x:57625 TIME_WAIT 0
TCP 10.x.x.x:61779
10.x.x.x:57625 TIME_WAIT 0
TCP 10.x.x.x:61784
10.x.x.x:52757 ESTABLISHED 7472
[DFSRs.exe]
TCP 10.x.x.x:63661
10.x.x.x:63781 ESTABLISHED 4880
------------------------------more troubleshooting--------------------------
-Increased Staging to 32GB
-Opened the ADSIedit.msc console to verify the "Authenticated Users" is set with the default READ permission on the following object:
a. The computer object of the DFS server
b. The DFSR-LocalSettings object under the DFS server computer object
-Ran
ping <var>10.x.x.x</var> -f -l 1472 and got replies back from both servers
-AD replication is successful on all partners
-Nslookup is working so DNS is working
-Updated NIC drivers on both servers
- I ran the following to set the Primary Member:
dfsradmin Membership Set /RGName:<replication group name> /RFName:<replicated folder name> /MemName:<primary member> /IsPrimary:True
Then Dfsrdiag Pollad /Member:<member name>
I'm seeing these errors in the dfsr logs:
20141014 19:28:17.746 9116 SRTR 957 [WARN] SERVER_EstablishSession Failed to establish a replicated folder session. connId:{45C8C309-4EDD-459A-A0BB-4C5FACD97D44} csId:{7AC7917F-F96F-411B-A4D8-6BB303B3C813}
Error:
+ [Error:9051(0x235b) UpstreamTransport::EstablishSession upstreamtransport.cpp:808 9116 C The content set is not ready]
+ [Error:9051(0x235b) OutConnection::EstablishSession outconnection.cpp:532 9116 C The content set is not ready]
+ [Error:9051(0x235b) OutConnection::EstablishSession outconnection.cpp:471 9116 C The content set is not ready]
---------------------------------------more troubleshooting-----------------------------
I've done a lot of research on the Internet and most of it is pointing to the same stuff I've tried. Does anyone have any other suggestions? Maybe I need to look somewhere
else on the server side or firewall side?
I tried replicating from a 2012 R2 server to another 2012 server and am getting the same events in the event log so maybe it's not a server issue.
Some other things I'm wondering:
-Could it be the speed of the NICs? Server A is a 2012 Server that has Hyper-V installed. NIC teaming was initially setup and since Hyper-V is installed the NIC is a "vEthernet
(Microsoft Network Adapter Multiplexor Driver Virtual Switch) running at a speed of 10.0Gbps whereas Server B is running a single NIC at 1.0Gbps
-Could occasional ping timeout's cause the issue? From time to time I get a timeout but it's not as often as the events I'm seeing. I'm getting 53ms pings. The folder
is only 3 GB so it shouldn't take that long to replicate but it's been days. The schedule I have set for replication is mostly all day except for our backup times which start at 11pm-5am. Throughout the rest of the time I have it set anywhere from
4Mbps to 64 Kbps. Server A is on a 5mb circuit and Server B is on a 10mb circuit.I'm seeing the same errors, all servers are running 2008 R2 x64. Across multiple sites, VPN is steady and reliably.
185 events from 12:28:21 to 12:49:25
Events are for all five servers (one per office, five total offices, no two in the same city, across three states).
Events are not limited to one replication group. I have quite a few replication groups, so I don't know for sure but I'm running under the reasonable assumption that none are spared.
Reminder from original post (and also, yes, same for me), the error is: Error: 1726 (The remote procedure call failed.)
Some way to figure out what code triggers an Event ID 5014, and what code therein specifies an Error 1726, would extremely helpful. Trying random command line/registry changes on live servers is exceptionally unappealing.
Side note, 1726 is referenced here:
https://support.microsoft.com/kb/976442?wa=wsignin1.0
But it says, "This RPC connection problem may be caused by an unstable WAN connection." I don't believe this is the case for my system.
It also says...
For most RPC connection problems, the DFS Replication service will try to obtain the files again without logging a warning or an error in the DFS Replication log. You can capture the network trace to determine whether the cause of the problem is at the network
layer. To examine the TCP ports that the DFS Replication service is using on replication partners, run the following command in a
Command Prompt window:
NETSTAT –ANOBP TCP
This returns all open TCP connections. The connections in question are "DFSRs.exe", which the command won't let you filter for.
Instead, I used the NETSTAT command as advertised, dumping output to info.txt:
NETSTAT -ANOBP TCP >> X:\info.txt
Then I opened Excel and manually opened the .TXT for the open wizard. I chose fixed-width fields based on the first row for each result, and then added a column:
=IF(A3="Can not", "Can not obtain ownership information", IF(LEFT(A3,1) = "[", A3&B3&C3, ""))
Dragging this down through the entire file let me see that row (Row F) as the file name. Some anomalies were present but none impacted DFSrs.exe results.
Finally, you can sort/filter (I sorted because I like being able to see everything, should I choose to) to get just the results you need, with the partial rows removed from the result set, or bumped to the end.
My server had 125 connections open.
That is a staggering number of connections to review, and I feel like I'm looking for a needle in a haystack.
I'll see if I can find anything useful out, but a better solution would be most wonderful. -
Hi,
I have an Oracle Stored Procedure that I must be calling. The procedure takes two IN parameters, and returns a CHAR(1000) string, not via the OUT parameter, but as normal return.
I have read articles about how to make Procedure Calls with OUT parameters, but didnt find any on my case. I have tried several options but still get parameter binding errors.
What I am trying right now is this:
If anyone
<b>======== code ==============</b>
SQLParameter[] params = new SQLParameter[2];
// Construct three objects corresponding to initial values
Object objMsisdn = new String("9656364550");
Object objUsername = new String("abc");
String output;
// prepare the oracle procedure parameters
params[0] = new SQLParameter(objMsisdn, Types.VARCHAR, SQLParameter.IN);
params[1] = new SQLParameter(objUsername, Types.VARCHAR, SQLParameter.IN);
try{
output = custDetDB.getCustDetails(params);
<b>========================================</b>
Java DB Control:
<b>========================================</b>
* @jc:sql statement="{call www_custdet(?,?)}"
String getCustDetails(SQLParameter[] params) throws SQLException;
Right now I am getting "Not All Variables Bound Error". I tried to have all IN & OUT parameters sent as SQLParameter before but that didnt work either.
Any hints?Bashar Abdullah wrote:
Hi,
> I have an Oracle Stored Procedure that I must be calling. The procedure takes two IN parameters, and returns a CHAR(1000) string, not via the OUT parameter, but as normal return.
As far as I know, it is impossible for an Oracle
stored procedure to return anything except
as output parameters. Show the text of the procedure,
and tell us what JDBC driver you're using.
Joe
I have read articles about how to make Procedure Calls with OUT parameters, but didnt find any on my case. I have tried several options but still get parameter binding errors.
> What I am trying right now is this:
If anyone
> <b>======== code ==============</b>
> SQLParameter[] params = new SQLParameter[2];
>
// Construct three objects corresponding to initial values
> Object objMsisdn = new String("9656364550");
> Object objUsername = new String("abc");
> String output;
>
> // prepare the oracle procedure parameters
> params[0] = new SQLParameter(objMsisdn, Types.VARCHAR, SQLParameter.IN);
> params[1] = new SQLParameter(objUsername, Types.VARCHAR, SQLParameter.IN);
>
try{
> output = custDetDB.getCustDetails(params);
> <b>========================================</b>
> Java DB Control:
> <b>========================================</b>
> /**
> * @jc:sql statement="{call www_custdet(?,?)}"
> */
> String getCustDetails(SQLParameter[] params) throws SQLException;
>
> Right now I am getting "Not All Variables Bound Error". I tried to have all IN & OUT parameters sent as SQLParameter before but that didnt work either.
>
Any hints? -
Stored Procedure Call with only Input Parameter
Hi, The Example at Oracle Toplink Developer's Guide, Volume 5 uses an output param named IS_VALID. How Can I Call a Stored Procedure that has only Input Param ? If I don't use an Ouput Param Toplink throw the following Exception:
*Excepción [TOPLINK-4002]* (Oracle TopLink - 10g Release 3 (10.1.3.3.0) (Build 070620)): oracle.toplink.exceptions.DatabaseException Excepción Interna: java.sql.SQLException: ORA-00900: invalid SQL statement
Here's the Sample Code Depicted at the Guide:*
Example 98–48 Stored Procedure Call with an Output Parameter
StoredProcedureCall call = new StoredProcedureCall();
call.setProcedureName("CHECK_VALID_POSTAL_CODE");
call.addNamedArgument("POSTAL_CODE");
call.addNamedOutputArgument(
"IS_VALID", // procedure parameter name
"IS_VALID", // out argument field name
Integer.class // Java type corresponding to type returned by procedure
ValueReadQuery query = new ValueReadQuery();
query.setCall(call);
query.addArgument("POSTAL_CODE");
Vector parameters = new Vector();
parameters.addElement("L5J1H5");
Number isValid = (Number) session.executeQuery(query,parameters);
Here's my code
StoredProcedureCall call = new StoredProcedureCall();
call.setProcedureName("MYSTOREDPROCEDURE");
call.addNamedArgument("INPUTPARAM1");
call.addNamedArgument("INPUTPARAM2");
call.addNamedArgument("INPUTPARAM3");
call.addNamedArgument("INPUTPARAM4");
call.addNamedArgument("INPUTPARAM5");
call.addNamedArgument("INPUTPARAM6");
ValueReadQuery query = new ValueReadQuery();
query.setCall(call);
query.addArgument("INPUTPARAM1");
query.addArgument("INPUTPARAM2");
query.addArgument("INPUTPARAM3");
query.addArgument("INPUTPARAM4");
query.addArgument("INPUTPARAM5");
query.addArgument("INPUTPARAM6");
Vector parameters = new Vector();
parameters.addElement("INPUTVALUE1");
parameters.addElement("INPUTVALUE2");
parameters.addElement("INPUTVALUE3");
parameters.addElement("INPUTVALUE4");
parameters.addElement("INPUTVALUE5");
parameters.addElement("INPUTVALUE6");
uow.executeQuery(query,parameters);
Regards,
ManuelYou need to use a DataModifyQuery as your query does not return anything.
James : http://www.eclipselink.org -
Passing UDT TABLE of VARCHAR as an Input parameter in Stored procedure call from java
I have following Type defined at the schema: ident_arr IS TABLE OF VARCHAR2(100) which is type of one of the input parameters. I am able to create oracle.sql.ARRAY object to map it with this UDT before calling my stored procedure from java. When I execute my stored procedure, I get the following error:
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'P_PV_WCC_INSERT'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
I have already checked all other parameter types.Hello,
Thank you, guys, for advice. I should have explained calling context before, but what I basically need to do is to see if procedure(arg1, list(record(arg2, arg3))) returns true.
I see array binding wouldn't fit there nicely. Internal procedure calls would be proc(next(arg1), next(arg2), next(arg3)) - if all these return true, external call should also return true. I would need to make a list of repeating values of arg1 and separate list(record(arg2, arg3)) into separate lists. I would also need to record whether the internal call returns true to deduce whether external call returns true.
As I see no better way yet, I'll make Oracle procedure proc(arg1, arg2, arg3) and implement a loop in .NET side. If I optimize for performance, I'll probably pack the array of records into string and pass it for Oracle side to parse.
Regards,
Aurimas Pranskevicius -
External Procedure Call: Temporary Blob Array out.
Hello,
I am having difficulty getting out an array of blob from the external procedure call interface. I am trying to create an array of blob initialized with temporary blobs. I was successfully able to create single blob parameter out but no success with the array type.
I am including the code for PLSQL wrapper, test code, and the main C code.
I appreciate your help.
The error message of the test run:
0
10
DECLARE
ERROR at line 1:
ORA-22275: invalid LOB locator specified
ORA-06512: at "SYS.DBMS_LOB", line 554
ORA-06512: at line 7
CREATE OR REPLACE PROCEDURE blob_coll (
cintarray IN OUT VDC_BLOB_ARRAY ) IS
LANGUAGE C
NAME "blob_coll"
LIBRARY sjc_lib WITH CONTEXT
PARAMETERS (
context,
cintarray OCIColl);
DECLARE
BLOBARRAY VDC_BLOB_ARRAY:= VDC_BLOB_ARRAY();
BEGIN
dbms_output.put_line( BLOBARRAY.count);
SCOTT.BLOB_COLL ( BLOBARRAY );
dbms_output.put_line( BLOBARRAY.count);
dbms_output.put_line( dbms_lob.getlength( BLOBARRAY(1)));
END;
void blob_coll( OCIExtProcContext *ctx,
OCIColl **cintarray )
sword status;
int i;
OCILobLocator *lobp[10];
status = OCIExtProcGetEnv( (OCIExtProcContext *)ctx, (OCIEnv **)&envhp,
(OCISvcCtx **)&svchp, (OCIError **)&errhp );
for (i=0; i < 10; i++)
status=OCIDescriptorAlloc( (dvoid *)envhp, (dvoid **) &lobp,
(ub4)OCI_DTYPE_LOB, (size_t)0, (dvoid**)0);
status=OCILobCreateTemporary((dvoid *)svchp,
(dvoid *)envhp,
lobp[i], (ub2)0, SQLCS_IMPLICIT,
OCI_TEMP_BLOB, OCI_ATTR_CACHE,
OCI_DURATION_SESSION);
status = OCICollAppend( (OCIEnv *)envhp,(OCIError *)errhp,
(CONST dvoid*) lobp[i],
(CONST dvoid*)0,
(OCIColl *)*cintarray);The "X" in the second registerOutParameter is the type name which
you have created in oracle DB.
eg. if you have created a nested table
create Type integer_table is table of number(10);
then "X" = "INTEGER_TABLE" and it has to be in caps
and other thing to keep in mind is that it only works with nested
table or varray and not with pl/sql table.
Al Pivonka (guest) wrote:
: How can I pass pl/sql record in and out
: and pl/sql tables in out thru a pl/sql procedure using jdbc
with
: the zip file of 816classes12.zip...
: I have tried everything I know...
: I know the procedure is working, others are using it with in
: Oracle...
: I need to use the information it generates.
: here is what I have so far...
: try
: Class.forName ("oracle.jdbc.driver.OracleDriver");
: DriverManager.registerDriver (new
: oracle.jdbc.driver.OracleDriver());
: oracle.jdbc.driver.OracleConnection conn =
: (oracle.jdbc.driver.OracleConnection
: DriverManager.getConnection
("jdbc:oracle:thin:@--","NA","NA");
: // SQL92 SyntaxCallableStatement
: oracle.jdbc.driver.OracleCallableStatement cstmt =
: (oracle.jdbc.driver.OracleCallableStatement)conn.prepareCall
: ("{call cbmd_proposal_PKG.DefaultTerms (?,?,?,?)}" ) ;
: cstmt.setString(1,"5118");
: cstmt.setString(2,"3");
: cstmt.registerOutParameter
: (2,oracle.jdbc.driver.OracleTypes.NUMBER);
: cstmt.registerOutParameter
(1,oracle.jdbc.driver.OracleTypes.ARRAY,"X");
: cstmt.execute();
: catch(Exception e)
: System.err.println(e.toString());
: e.printStackTrace();
: The "X" in the second registerOutParameter is still unknown to
: me.
: The JavaDoc for the
OracleCallableStatement.registerOutParameter
: is not clear.
: Can any One help simplify this...
: Thanks
null -
External procedure call for cobol programs
I'm trying to call cobol programs using external procedure calls. I followed metalink doc#119543.1 but when the cobol shared library is called from PL/SQL, the session hangs. I'm running Oracle 9.2.0.4 EE, Microfocus Server Express 2.2, C for AIX v6, and AIX 5.2 (64-bit). If you know how to get this working or you have a working test case, please post a reply. Thanks.
You know that there are several steps to it :
1.- Make a library from cobol a the source code in a file
2.- Check the listener parameters to call external procedures and the service in the client
3.- Make a library inside the database
4.- Create the procedure that is going to call the
procedure.
Did you do those steps?
Joel P�rez -
Regional settings influences jdbc stored procedure calls?
Hi,
We have a strange problem: we use a jdbc test client
that does a simple stored procedure call with one
input parameter (integer) and one output parameter
(integer). Like:
"? = callprocedure(?)" . The database resides on a different server.
The problem is: this only works when we use "netherlands" regional setting on the windows 2000 machine that
java client program runs on. If we switch to
"english (united states)" the call gives other results
in the output parameter / returns an error code.
Does this have something to do with the Locale of the
virtual machine? Or do I have to do something with
NLS_LANG to eliminate the behaviour that is dependent on
the windows regional settings? Please help!
Thanks,
Michel Schudel
We use the Oracle JDBC thin driver, latest version.
(archive: classes12.zip)Ok, here it is. Basically, I first call a stored procedure called SETPARAM which receives two Strings:
a parameter name and a a parameter value. After that, I
call a procedure called RUNSQLKIT without any input parameters. The output parameter is an integer that indicates the number of "cells" in the output message. After that, I start to retrieve the cells but that is not important here. What happens is: with Dutch regional settings, the number of cells is normal (387) but with
US settings, the number of cells is -1 (indicates an error.) Why? I use no dates or floating point values as
input/output!
Jvm version is 1.3.1_08, oracle driver is 8.1.7
(Oracle 8i) thin jdbc driver. Oracle runs on AIX.
conn = m_dataSource.getConnection();
// Setup the input params
stmtInput = conn.prepareCall("BEGIN Pck_Sqlmast.setparam(?,?); END;");
for (final Iterator iter = m_kitParameterNames.iterator(); iter.hasNext();) {
final String sName = (String) iter.next();
final String sValue = input.getParameter(sName);
if (sValue != null) {
stmtInput.setString(1, sName);
stmtInput.setString(2, sValue);
stmtInput.executeUpdate();
// Call the kit
stmtRun = conn.prepareCall("BEGIN ? := Pck_Sqlmast.runsqlkit(?); END;");
stmtRun.registerOutParameter(1, Types.INTEGER);
stmtRun.setString(2, m_kitName);
stmtRun.executeUpdate();
final int iCells = stmtRun.getInt(1);
Hi Michel,
Perhaps you would care to post some more information
including:
1. Entire error message and stack trace you are
getting.
2. The part of your java code where the error
occurs.
3. Java version you are using.
4. Oracle database version you are using.
5. Platform on which Oracle database is running.
Good Luck,
Avi.
Maybe you are looking for
-
We are using App-V 5.0 SP1. I have a package that will need to get patched whenever new security updates are released. The first version of the application always works fine, but when I update the application and re-publish it, a normal user is unab
-
Types of Configuration Items in SCCM 2012
Hello, What are different types of Configuration items in SCCM 2012?? I currently know about two types a) Operating System b) Application are there any more? sunil
-
High scores table without name repeat
Hello there, I have some code which fills a high scores table.. we've decided to give away a prize to the top ten people in the high scores table.. the problem is that people are playing repeatedly and fillnig the high scores table with their name, t
-
IPhoto freezes when Preferences/Accounts selected
I am using iPhoto '11, ver. 9.2 (626) with OSX 10.7.4. I used iPhoto Library Manager to rebuild my Library and everything seems to be working just great except when I select Preferences - Accounts. When the screen displays, it highlights MobileMe a
-
Please Help me with Airport Question.......
I am wondering what is the difference between Airport Extreme Base Station ($179) and Airport Express Base Station ($99)? I currently have a Linksys Cable Modem and a Linksys Wireless Router (WRT54GS) and am having lots of issues with it, so I am thi