When to delete SQL Packages
It's been a long time and I've forgotten: If a new cumulative fix pack is installed at the OS-level, do you need to delete SQL packages?
Thanks in advance,
Robert
Hi Bob,
YES !!!!!!
(as soon as you install 1 PTF only, you should delete all SQL packs!)
Regards
Volker Gueldenpfennig, consolut international ag
http://www.consolut.de - http://www.4soi.de - http://www.easymarketplace.de
Similar Messages
-
SAP Restart to Delete SQL Packages
I am starting this discussion on behalf of a client:
Especially the "veterans" of AS/400 remember, that in the beginning of SAP on AS/400 it was often necessary to stop the SAP instance and delete the SQL packages in order to overcome database errors that usually showed up as SQL -901 errors. This way of "fixing" SQL -901 became like a habit, so that support employees often recommended to stop the SAP instance and delete SQL packages when a simple restart of the failing work process would have fixed the problem. Later we recommended to use profile parameter rdisp/wp_auto_restart to restart work processes automatically once a day (for example), and that seemed to have solved the problem. However, my client is not quite convinced that this works and does not want to "play" with the production system. They are using an ECC 6.0 system with a 10 TB database and about 4000 active users.
Question to this group: Do you have systems with a similary size that run several weeks (or even months) without interruption for deleting SQL packages? If so, do you use profile parameter rdisp/wp_auto_restart, and what value is configured? Also "negative" answers are welcome, i.e. if you have the experience that the SQL packages must be deleted on a regular base for the sytem to work properly, please let us know, too.
Thanks a lot for your cooperation.
Kind regards,
Christian Bartels.Hi Christian and Jim,
Our production database is 8 TB with 3400 named users (1,000 or so concurrent). We still are "old school" and delete the SQL packs during normal maintenance twice a month (either two or three week interval). I know we have gone longer if we were having a lot of go-lives but I don't think it has happened since we upgraded to ECC 6.0.
We did have some SQL pack issues a while ago but it turned out to be they were reaching the maximum size for table IBSYMBOL. Since then we set the QAQQINI value "SQL_INCREASE_PKG_LIMIT = *YES " which doubled the allowable size to 1GB I believe. We still were reaching the max and we ended up inserting a profile parameter.
"dbs/db4/dbsl_tablehint0 = Table = 'IBSYMBOL' & nMarkers > 100 ? SingleExecutionReuse"
Credits - Steve Tlusty of IBM came up with the fix
During that round of fun, Steve also had us adjust the following parameters -
rdisp/noptime = 605800
rdisp/wp_auto_restart = 604800
Note - even though we are at 6.1.1 now, the adjustments were made on 4.7x200 while running under V5R4 so I don't know if they are still required.
Have I rambled too long?
Craig -
Using CASE WHEN in PL/SQL package
I am trying to convert the values in a selected column into 1 and 0 so that I can display all 1s in one column, all 0s in another. I am doing this in a PL/SQL package. However ORACLE compiler does not like the CASE construct.
Does anyone know how to group values in a column into several new columns. If CASE WHEN construct is not doable in PL/SQL, what alternatives are there? Thanks.
/******* My package starts here *******/
CREATE OR REPLACE PACKAGE TEST_NEED AS
PROCEDURE procTEST_NEED(STARTING_DATE IN VARCHAR2);
END CVRR_MON_NEED;
CREATE OR REPLACE PACKAGE BODY TEST_NEED
AS
PROCEDURE procTEST_NEED(STARTING_DATE IN VARCHAR2)
IS
TEST_START DATE := TO_DATE(STARTING_DATE,'MM/DD/YYYY');
CURSOR v_Cursor IS
SELECT A.D_CODE, A.M_CODE, TEST_START , C.C_NAME,C.P_ID,
SUM(CASE WHEN MONTHS_BETWEEN(SYSDATE, D.P_DOB)/12 > 40 AND MONTHS_BETWEEN(SYSDATE, D.P_DOB)/12 <85 AND B.B_CODE IN '11.1','222.2','272.4') THEN 1 ELSE 0 END) QUALIFIED
FROM A, B, C, D
WHERE A.ID = B.B_ID
AND RTRIM(A.P_CODE) = C.P_CODE
AND A.P_ID = D.P_ID
AND A.P_ID < 99999999999999999999
AND A.E_DATETIME < SYSDATE
GROUP BY A.D_CODE, A.M_CODE, TEST_START , C.C_NAME,C.P_ID;
v_RecordHolder v_Cursor%ROWTYPE;
BEGIN
OPEN v_Cursor;
FETCH v_CursorINTO v_RecordHolder ;
WHILE v_Cursor%FOUND LOOP
look for records in another table with matching keys of the cursor
if found then update by incrementing the existing values in the matching records with values of the current currsor row
else insert the current cursor row
FETCH v_Cursor INTO v_RecordHolder ;
END LOOP;
END procTEST_NEED;
END TEST_NEED;I am trying to convert the values in a selected
column into 1 and 0 so that I can display all 1s in
one column, all 0s in another. I am doing this in a
PL/SQL package. However ORACLE compiler does not
like the CASE construct.
Does anyone know how to group values in a column into
several new columns. If CASE WHEN construct is not
doable in PL/SQL, what alternatives are there?
Thanks.
CURSOR v_Cursor IS
SELECT A.D_CODE, A.M_CODE, TEST_START ,
, C.C_NAME,C.P_ID,
SUM(CASE WHEN MONTHS_BETWEEN(SYSDATE, D.P_DOB)/12 >
40 AND MONTHS_BETWEEN(SYSDATE, D.P_DOB)/12 <85 ANDB.B_CODE IN '11.1','222.2','272.4') THEN 1 ELSE 0
END) QUALIFIEDUse the Decode function. This has been around in oracle SQL for ages and works like a case construct.
You would do something like
select ...
sum( decode (MONTHS_BETWEEN(SYSDATE, D.P_DOB)/12 >
40 AND MONTHS_BETWEEN(SYSDATE, D.P_DOB)/12 <85 AND
B.B_CODE IN ('11.1','222.2','272.4') 1,0 ) -
Connection Reset when compiling PL/SQL Package
Recently a strange issue appeared on my office PC. When I try To compile a PL/SQL package on specific Oracle instance I get an error message:
Error: Io exception: Connection reset by peer: socket write error
And the connection is reset. I even cannot reconnect to database schema. To open connection again I have to restart SQL Developer. In spite of this issue I can execute SELECT queries in SQL worksheet and view data in tables. Error message appears only when compiling packages in any schema on database instance in our local network and only on my PC. Other office PCs works fine without any errors. I am able to compile packages on remote database from my PC.
Same error message shows up in different SQL Developer versions and also in JDeveloper. SQL Developer restart, Windows restart, database instance restart doesn't help.
Used software:
SQL Developer versions: 1.2.1 and 1.1
JDeveloper version: 10.1.3.2
Oracle Database on local network: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit
Remote Oracle Database: Oracle Database 10g Release 10.2.0.3.0 - Production
OS: Windows XP Pro SP2
Thanks,
RaymondI am trying to convert the values in a selected
column into 1 and 0 so that I can display all 1s in
one column, all 0s in another. I am doing this in a
PL/SQL package. However ORACLE compiler does not
like the CASE construct.
Does anyone know how to group values in a column into
several new columns. If CASE WHEN construct is not
doable in PL/SQL, what alternatives are there?
Thanks.
CURSOR v_Cursor IS
SELECT A.D_CODE, A.M_CODE, TEST_START ,
, C.C_NAME,C.P_ID,
SUM(CASE WHEN MONTHS_BETWEEN(SYSDATE, D.P_DOB)/12 >
40 AND MONTHS_BETWEEN(SYSDATE, D.P_DOB)/12 <85 ANDB.B_CODE IN '11.1','222.2','272.4') THEN 1 ELSE 0
END) QUALIFIEDUse the Decode function. This has been around in oracle SQL for ages and works like a case construct.
You would do something like
select ...
sum( decode (MONTHS_BETWEEN(SYSDATE, D.P_DOB)/12 >
40 AND MONTHS_BETWEEN(SYSDATE, D.P_DOB)/12 <85 AND
B.B_CODE IN ('11.1','222.2','272.4') 1,0 ) -
Jdevelop 11 v4. error when publish pl sql package as webservice
Hello..
I have installed latest version of Jdeveloper..
When I like to create a webservice from plsql package I get the error:
What can be wrong?
java.lang.ClassCastException: oracle.jdeveloper.webservices.model.plsql.PLSQLPortType
at oracle.jdeveloper.webservices.model.generator.AddToDeploymentProfiles.getJarFiles(AddToDeploymentProfiles.java:592)
at oracle.jdeveloper.webservices.model.generator.AddToDeploymentProfiles.action(AddToDeploymentProfiles.java:292)
at oracle.jdeveloper.webservices.model.generator.GeneratorAction.run(GeneratorAction.java:147)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:153)
at java.awt.Dialog$1.run(Dialog.java:525)
at java.awt.Dialog$2.run(Dialog.java:553)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:551)
at java.awt.Component.show(Component.java:1300)
at java.awt.Component.setVisible(Component.java:1253)
at oracle.bali.ewt.dialog.JEWTDialog.runDialog(Unknown Source)
at oracle.bali.ewt.dialog.JEWTDialog.runDialog(Unknown Source)
at oracle.ide.dialogs.ProgressBar.start(ProgressBar.java:361)
at oracle.ide.dialogs.ProgressBar.start(ProgressBar.java:222)
at oracle.ide.dialogs.ProgressBar.start(ProgressBar.java:194)
at oracle.jdeveloper.webservices.model.Model.saveEditSync(Model.java:242)
at oracle.jdevimpl.webservices.wizard.jaxrpc.PLSQLWizard.runWizard(PLSQLWizard.java:366)
at oracle.jdevimpl.webservices.wizard.jaxrpc.PLSQLWizard.runWizard(PLSQLWizard.java:137)
at oracle.jdevimpl.webservices.WebServicesAddin.fastCreatePlSqlService(WebServicesAddin.java:1503)
at oracle.jdevimpl.webservices.WebServicesAddin.handleEvent(WebServicesAddin.java:870)
at oracle.ide.controller.IdeAction.performAction(IdeAction.java:513)
at oracle.ide.controller.IdeAction.actionPerformedImpl(IdeAction.java:843)
at oracle.ide.controller.IdeAction.actionPerformed(IdeAction.java:486)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.AbstractButton.doClick(AbstractButton.java:302)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1000)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1041)
at java.awt.Component.processMouseEvent(Component.java:5501)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
at java.awt.Component.processEvent(Component.java:5266)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3968)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1778)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Message was edited by:
Peterv6iHere is screen shoot from Jdeveloper
-
ORA-00904 OCCURS WHEN CALLING PL/SQL PACKAGED FUNCTIONS
Hi ,
When i try to execute
SELECT P_GMT_FOLDER.F_GET_SEC_MTRTY_BUCKET(TO_DATE('16/04/2008','DD/MM/YYYY'),TO_DATE('16/04/2008','DD/MM/YYYY'))
FROM DUAL
it showing the error like in Production
ORA-00904 invalid identifier.
But in UAT is is working fine.
Could anyone tell me how to fix this?
Cheers
Ramkannan.Alol!
I'd like to say that I'd join you, but I'm sure someone would misconstrue that!
*{;-) -
Hi Experts,
I am new to HANA and I am practicing some tutorials. I have created a package in the 'Systems' view in the Developer Perspective. However, when I delete that package from the context menu, I get an error message like the one in the image below.
However, to me this package looks empty. I have even checked the SYS_REP package tables 'ACTIVATED_OBJECTS' and 'INACTIVATED_OBJECTS" and I could not find any such files there.
I executed the below SQL commands:
SELECT * FROM "_SYS_REPO"."ACTIVE_OBJECT" where PACKAGE_ID = 'ajith.demos.HWX_WS.Demos'
SELECT * FROM "_SYS_REPO"."INACTIVE_OBJECT" where PACKAGE_ID = 'ajith.demos.HWX_WS.Demos'
but they are not returning any values.
Can some one guide me as to how to safely delete such packages?
Thanks,
Ajith CheruvallyHi,
I have resolved this issue by following the steps in the following link.
- I tried deleting them through the Web Based IDE first. However, there were still a previous Workspace related file which could not be deleted.
- I then recreated a workspace with the same name and checked it out and deleted from the project explorer and from repository and it worked!!!
https://answers.saphana.com/sap/answers/frontend/web#details/JIVE_DISCUSSION/113000
Thanks,
Ajith Cheruvally -
Delete Deployment Package Correctly
I notice when I delete a software update deployment package, the updates still remain in the source folder so I manually delete that. After this, the updates that were in that package still show as downloaded in the console. I do see that if I delete the
updates one by one or by selecting all it does remove from the source and refresh distribution points and then the update correctly state they are no longer downloaded. Question is, when I delete the package entirely and then the source files manually, will
the distribution points be refreshed and content removed? Or am I doing it the wrong way and should remove all updates first from the package in the console, and then delete package?Hi,
Please refer to the link below:
Software Update Content Cleanup in System Center 2012 Configuration Manager
http://blogs.technet.com/b/configmgrteam/archive/2012/04/12/software-update-content-cleanup-in-system-center-2012-configuration-manager.aspx?PageIndex=2
We
are trying to better understand customer views on social support experience, so your participation in this
interview project would be greatly appreciated if you have time.
Thanks for helping make community forums a great place. -
How to automate SQL packages deletion prior to IPL to apply PTF's ?
Hi,
When PTF's need to be applied to the system to avoid trouble it is recommended to delete the SQL packages. The only way to do this that I know of is by using the R3MAIN menu to access the option to delete the SQL packages. As we have two instances on our system this is (to much) time consuming.
For this reason I would like to schedule a STOP of both SAP instances. Followed by some method to check if the SAP instance is down. If the SAP instance is down I would like to Delete the SQL packages and when this task completes I would like to send myself an e-mail confirming this deletion.
The pieces of the puzzle I am missing to achieve all this are:
1. How to check if SAP is done ?
2. How to delete the SQL packages for both instances in a program ?
Of course it would be perfect if it is possible to check for any active SAP users from a program also. I think I have the CL programming skills to write such a program and of course I want to share that information once the program has been tested and approved by me
Regards, Rudi van HelvoirtHi Rudi,
I would do it in QSTRUP after IPL, but that's a minor difference.
with an *ALLOBJ user:
CALL R3sid400/R3INLPGM
DLTR3PKG sid
As this sometimes fails, I would code the DLTR3PKG 3-5 times into the CL - the second and more ones are done within a second - so no problem )
You do this for each SID and should be happy - as you do not want this with every IPL I guess, you might want to use a DTAARA in order to control this.
Regards
Volker Gueldenpfennig, consolut.gmbh
http://www.consolut.de - http://www.4soi.de - http://www.easymarketplace.de -
PL/SQL: ORA-22806: not an object or REF when Using Record in Package
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0
I have declared a record type in my package
create or replace
PACKAGE MYPKG AS
TYPE MYREC IS RECORD (VAL1 varchar2(20), val2 date);
PROCEDURE display_error (pSQLERRM number);
PROCEDURE P_LOAD_DATA (pStartDate Date, pEndDate Date);
FUNCTION F_EPI(refno1 in NUMBER, refno2 in NUMBER) return MYREC;
END MYPKG;
--In My Package Body
FUNCTION F_EPI(refno1 in NUMBER, refno2 in NUMBER) return MYREC is
F_param MYREC;
BEGIN
select myvarchar2, mydate into MYREC from MYTable
where myrefno1 = refno1
and myrefno2 = refno2
Exception
when others then
display_error(SQLERRM);
RETURN F_param;
END F_EPI ;
PROCEDURE P_LOAD_DATA (pStartDate Date, pEndDate Date) IS
insert into atable(myvarchar, mydate)
select F_EPI(refno1,refno2).val1,F_EPI(refno1,refno2).val2 from tab2;
END P_LOAD_DATA;
I get errors
Error(187,7): PL/SQL: SQL Statement ignored
Error(225,7): PLS-00382: expression is of wrong type
Error(225,7): PL/SQL: ORA-22806: not an object or REF
When I compile the package.
When I try to call the function from SQL I get an Invalid datatype error.Hi,
Before posting any query/plsql blocks, please ensure that you have written it clean and complete with less syntax errors. ( at least general syntax errors, you can avoid). Then somebody can have an interest to check your logical error.
About your posting, refer below solution step-by-step. It may help you, about what you are looking for? By the way, you must be knowing, what you are going to to do with. I haven't concentrated about your requirement; as it was not missing in your posting.
drop table test;
create table test(myvarchar varchar2(20), mydate date);
create or replace
package mypkg as
type myrec is record (val1 varchar2(20), val2 date);
--procedure display_error (psqlerrm in number); -- if you are passing sqlerrm, then parameter needs to be string type
procedure display_error (psqlerrm in varchar2);
procedure p_load_data (pstartdate in date, penddate in date);
function f_epi(refno1 in number, refno2 in number) return myrec;
end mypkg;
Package created.
--in my package body
create or replace
package body mypkg as -- added
procedure display_error (psqlerrm in varchar2) -- if you are declared a proc/func in spec, it needs to define in pkg body
is
begin
null; -- you should know, what to do here
dbms_output.put_line('Err -'||sqlerrm);
end display_error;
function f_epi(refno1 in number,refno2 in number)
return myrec
is
f_param myrec;
begin
-- select myvarchar2, mydate into MYREC from mytable
-- where myrefno1 = refno1
-- and myrefno2 = refno2;
select ename, hiredate into f_param from emp -- added demo logic by using emp
where empno = refno1
and mgr = refno2;
return f_param; -- added
exception
when others then
raise; -- if you are using OTHERS then, just raise it
display_error(sqlerrm);
--return f_param; -- what is this?
end f_epi;
procedure p_load_data (pstartdate in date, penddate in date) -- you must be knowing the use of 2 params ???
is
v_rec myrec; -- added
begin -- Added
--insert into atable(myvarchar, mydate)
-- select f_epi(refno1,refno2).val1,f_epi(refno1,refno2).val1 from tab2;
-- demo logic added with static params to call f_epi
v_rec:= f_epi(7499,7698);
insert into test values v_rec;
--null;
end p_load_data;
end mypkg;
Package body created.
SQL> exec mypkg.p_load_data(null,null);
PL/SQL procedure successfully completed.
SQL> select * from test;
MYVARCHAR MYDATE
ALLEN 20-FEB-81
Thanks! -
Error when publishing a PL/SQL package as a Webservice
Hi all,
I am using the JDeveloper (10.1.3.1.0) to publish a PL/SQL package as a Webservice, and I am having some troubles on the generation process.
The problem that I am facing is on the generated code for the database side, where some methods have a “$GET_” at the end of its name.
This “$GET_” is handled by the database as a special word, and the package can’t be compiled.
If the ‘$’ character is removed from all the methods, the package can be compiled and the Webservice works fine.
What’s wrong? Is there a bug on the generation process of the JDeveloper?
Regards,
Rui TorresOK, This is the PL/SQL package:
Function:
FUNCTION Obtener_paises RETURN res_webservice AS
v_respuesta res_webservice;
i PLS_INTEGER:=1;
CURSOR C_paises IS
SELECT cpais, tpais
FROM paises
ORDER BY tpais;
BEGIN
v_respuesta := res_webservice(null,null);
v_respuesta.error := res_error(null,null,null);
v_respuesta.error.cerror := 0;
v_respuesta.error.cerror_ora := 0;
v_respuesta.error.terror := null;
v_respuesta.datos := res_datos ();
FOR v_pais IN C_paises LOOP
v_respuesta.datos.extend;
v_respuesta.datos(i) := reg_datos(null,null);
v_respuesta.datos(i).codigo := v_pais.cpais;
v_respuesta.datos(i).descripcion := v_pais.tpais;
i := i + 1;
END LOOP;
Insertar_log(NULL,SYSDATE,'C','Obtener_paises',NULL,'ERROR:0');
RETURN v_respuesta;
EXCEPTION
WHEN OTHERS THEN
v_respuesta.error.cerror := 1;
v_respuesta.error.cerror_ora := SQLCODE;
v_respuesta.error.terror := substr(SQLERRM,1,80);
Insertar_log(NULL,SYSDATE,'C','Obtener_paises',NULL,'ERROR:1 '||substr(SQLERRM,1,120));
RETURN v_respuesta;
END Obtener_paises;
TYPES USED:
CREATE OR REPLACE
TYPE res_webservice AS OBJECT (error res_error, datos res_datos);
CREATE OR REPLACE
TYPE res_error AS OBJECT (cerror NUMBER(1), cerror_ora VARCHAR2(12), terror VARCHAR2(80));
CREATE OR REPLACE
TYPE res_datos AS TABLE OF reg_datos;
CREATE OR REPLACE
TYPE reg_datos AS OBJECT(codigo VARCHAR2(12), descripcion VARCHAR2(150));
Thanks in advanced...
Could happen this bacause of these defined types??? -
Sql developer hangs when saving pl/sql external package or package body fil
When I open a package body file I can modify the contents of the file.
Compilation of the file works fine but when I want to close or save the file SQL developer hangs. I use version 1.2 (previous version did have the same problem.)
Somebody has an idee what I'am doing wrong?Are you using 1.2.1.32.13?
Sue -
How to get changes of a custom PL/SQL package updated in ISG?
Hi All,
I need some help on how to change a custom PL/SQL package in ISG integration repository:
I already uploaded my custom PL/SQL package to the integration repositoy some time ago. Now I have made some changes to PL/SQL record/table types defined in the package (added some fields and removed some others). These changed record/table types are used by a procedure I already uploaded to the integration repository. When regenerating the WSDL for my PL/SQL package in integration repository I get an error that the wrapper for respective procedure can't be found. When checking up the SQL types that were automatically generated (by JPublisher) for corresponding PL/SQL types, these generated SQL types are invalid...
So it seems that in one case JPublisher generated an empty SQL type (with no attributes). In another case JPublisher generated the SQL type with old attribute list, so it didn't adopt the changes of corresponding PL/SQL type in the package...
Can anybody tell me how to get the changes of a cusotm PL/SQL package updated in ISG? Or is there any possibility to first remove a whole PL/SQL package from the ISG integration repository (and getting rid of all old automatically generated SQL types), so that I can newly upload my PL/SQL package afterwards?
Thanks
Konrad
Edited by: Konrad on 24.10.2011 10:51Thanks Daniel, for your reply...
(-> for info: I'm a colleague of Konrad...)
Yes, we used a higher version number - and the upload of iLDT file works fine...
But, the problem occured when generating the WSDL...
However, I think we have found an approach of how to get the changes of a custom PL/SQL package updated correctly in ISG:
1. Save a copy of PL/SQL package and then delete it in the database
2. Regenerate the WSDL for PL/SQL package in ISG (seems that all atutomatically generated JPub wrappers and SQL types are also deleted)
3. Restart all processes
4. Create the changed version of PL/SQL package in the database again
5. upload of iLDT
6. Regenerate the WSDL for PL/SQL package in ISG
Best Regards
Carolin -
My PL/SQL package worked in 8i but does not function in 9i
At our site we have two servers. On server B (master server) we enter all the user information such as create user,alter,
grant,revoke... etc. This data is entered into the master server and also inserted into a log table that is accessed, periodically, by our
second server, server A.
Server B is accessed by a PL/SQL package, executed at server A. It accesses server B through a database link and selects the
statements in the table at server B, and executes them on server A. It if encounters an error (user doesn't exist, role doesn't
exist,...etc) it makes an entry in a error_log table on server B, deletes that entry from the log table on server B, and continues with
the next statement. In Oracle 8.1.6.3, it works great. However, we have just migrated to Oracle 9.0.1.3 and now we can't get it
to work at all. It appears that the exception handler(s) is not working and falls through to the outer most exception handler which
states: when others then dbms_output.put_line ('Processing Aborted');
If anyone has any ideas on this subject, please let me know.
Thanks,
Berniedid you check to see what the Oracle error message was, using someting like this:
dbms_output.put_line(SubStr(SQLERRM, 1, 255)) ; -
26.4 Basing an entity Object on a PL/SQL Package API - Ref Cursor, no View
I am hoping that I could get some help in the details of a problem. I am trying to follow the directions in the Oracle Application Development Framework Developer's Guide for Forms/4GL Developers, Section 26.4 - Basing an Entity Object on a PL/SQL Package API.
There is example code in the downloadable AdvancedEntityExamples - EntityWrappingPL/SQLPackage
The question is, how will the implementation change if the entity is based entirely on PL/SQL - simply stated - no view is available, just ref cursors and insert,update,delete procedures.
In the example code, there are two procedures, lock_product and select_product. This is where things get more complicated. I can create a function to return a single record ref cursor, instead of the list of OUT variables defined in both functions (select_product and lock_product). It makes sense that I just return one cursor and get all of the columns from that instead of lots of OUT variables.
So what's stopping me you may ask... There is one difference between select_product and select_lock. Select_lock has a select that includes "FOR UPDATE NOWAIT". I don't have that as an option when creating my ref cursor. I am not sure what the impact of "FOR UPDATE NOWAIT" is? Can I ignore it?
In the problem I am working with, (getting data from Oracle Portal 10.1.4) I return the following:
function getRefCursor return ref_cursor is
v_tab wwsbr_all_items_object_type := wwsbr_all_items_object_type();
p_recordset wwsbr_types.cursor_type;
l_results wwsrc_api.items_result_array_type;
begin
wwctx_api.set_context(<username>,<password>);
l_results := wwsrc_api.item_search(.. parameters..);
<snip>
... Loop through the objects and populate v_tab
<snip>
open p_recordset for
select * from table(cast(v_tab as wwsbr_all_items_object_type));
return p_recordset;
end getRefCursor;
With this sample, it would be easy to return a single row by passing the masterid as a parameter.
So I am still left with, how should the implementation of callLockProcedureAndCheckForRowInconsistency() and callSelectProcedure() be changed in order to use a ref cursor instead of a view? The user guide was missing that extra section <bg>.
What would be REALLY helpful, is an example, say 26.4A that demonstrates creating an entity object from a ref cursor and procedures from PL/SQL only without a view.
Thank you, KenThe lock procedure is expected to obtain a row-level lock on the row, given its key.
Depending on the setting of jbo.locking.mode, the entity object's lock() method will be invoked either as soon as the first persistent attribute is successfully modified by the user (in the case of jbo.locking.mode=pessimistic), or it will be called during commit processing just before the row is updated in the database (with jbo.locking.mode=optimistic).
Usually 2-tier Swing applications use pessimistic mode, while web applications use optimistic mode.
The FOR UPDATE NOWAIT is the Oracle clause that can be appened to a SELECT statement to acquire a row-level lock on the selected rows. The NOWAIT modifier means that rather than hanging, waiting for a row locked by another user to free up, it will raise an exception if any of the rows being selected-and-locked are not available to lock.
If you're not able to work the FOR UPDATE NOWAIT into the syntax of the ref cursor, perhaps you can initially perform the lock using a different cursor inside the stored procedure, then return your ref cursor.
Maybe you are looking for
-
web page automatically loads up each time and the exist bottom is disabled on the screen.
-
I have an ATV3 that I cannot see as an option to airplay anything from my Macbook Pro, iPhone, or iPad. All devices including the ATV3 have up to date software. I also have an ATV2 which is visible from all devices to airplay. Any ideas to resolve
-
Exclude exchange rate JEs from Customer Statement layout
Hello Our customer is using the Customer Statement from the Aging report. On the layout he can see manual JEs which should be excluded from the statement that is sent to the customer ; for example u2013 exchange rate JEs. Do you know of a way to excl
-
Hi, Does anyone have good idea how to implement holiday_flag in time dimension? I wondered if I added "holiday_flag" attribute, however, our universe is global and holiday date is different between each countries. Some ideas has come up as below, but
-
Hi I have a problem when using the ant deploy command in the hello1 app in the tutorial. I get an error: BUILD FAILED E:\dev\javaeetutorial5\examples\bp-project\app-server-ant.xml:417: Property javaee.server.passwordfile not specified. Please specify