Hi Team,
Can I use Oracle 18c with powerbuildr2017. Please advise.
Regards
Nikesh
Hi Team,
Can I use Oracle 18c with powerbuildr2017. Please advise.
Regards
Nikesh
Frank,
What errors are you getting? Are they "ORA-01024: invalid datatype in OCI call"? That's what I'm getting when testing passing arrays of strings with Oracle 19c. (I haven't tried 18c.)
Tom
Hello everybody with Oracle 18c issues, please open support tickets because we are planning to officially support Oracle 18c in Revision 2 of PB 2019, which is scheduled to release this year, and want to do our best to address all your issues in that release. https://www.appeon.com/standardsupport/newbug
Hello!
We have very similar problem with PB application and arrays when using 18c database.
Does anyone know if the newest Appeon releases overcame this problem?
Thanks,
Robert
I assume you already have "PBNewSPInvocation='Yes'" in your dbparm connection string?
If not, try adding it, it might solve the problem.
HTH
Hi Nesh, Hi Team
we are currently testing our product (build with PB2017R3) with ORACLE 18c.
We notice problems with "RPCFUNC" passing "pl/sql tables". So we notice problems
with passing "ARRAYS" in and out to Oracle stored procedures/functions.
This problem is new and not happen then we run our product with a ORACLE Server 12.x or lower.
Best regards.
Frank
Some Details we find out:
DBMS=trace ORA Oracle
this Error comes only on Oracle 12c Servers:
0ED62440): EXECUTE REMOTE PROCEDURE: IMS.gm_insert.getAttribValuesByIds
ARRAY TYPE VCHAR
ARRAY TYPE VCHAR REFERENCE
ARRAY TYPE LONG
ARRAY TYPE LONG
(0ED62440): BEGIN :rc := IMS.gm_insert.getAttribValuesByIds( :0,:1,:2,:3); END; (0.000 MS / 1533.062 MS)
(0ED62440): *** ERROR 932 ***(rc -1) : ORA-00932: Inkonsistente Datentypen: %s erwartet, %s erhalten
(0ED62440): ORA-00932: Inkonsistente Datentypen: %s erwartet, %s erhalten
(0.000 MS / 1533.062 MS)
(0ED62440): *** ERROR 932 ***(rc -1) : ORA-00932: Inkonsistente Datentypen: %s erwartet, %s erhalten
(15.668 MS / 1548.730 MS)
(0ED62440): *** ERROR 932 ***(rc -1) : ORA-00932: Inkonsistente Datentypen: %s erwartet, %s erhalten
Implementation Infos:
We have Oracle Package Signatures like this:
Oracle PL/SQL:
CREATE OR REPLACE PACKAGE "GM_INSERT" is
/*==============================================================*/
/* Created on: 25.01.05 08:00:00 */
/* Modified on: 22.01.18 10:06:00 */
/* Version : initial Version 1.0c */
/*==============================================================*/
TYPE T_VARCHAR2_ARRAY is TABLE of vd_attrib.vd_valuestring%TYPE index by binary_integer;
TYPE T_NUMBER_ARRAY is TABLE of NUMBER index by binary_integer;
function getAttribValuesById(
a_tagStringList_in in T_VARCHAR2_ARRAY,
a_valueStringList_out out T_VARCHAR2_ARRAY,
a_obj_id in object.obj_id%type Default null,
a_insert_id in vd_insert.vd_id%TYPE Default null
) return Number;
function getAttribValuesByIds(
a_tagStringList_in in T_VARCHAR2_ARRAY,
a_valueStringList_out out T_VARCHAR2_ARRAY,
a_obj_ids in T_NUMBER_ARRAY,
a_insert_ids in T_NUMBER_ARRAY
) return Number;
And calls from our product (build with PB2017R3) like this:
function double dbf_insert_getAttribValuesById(string a_tagStringList_in[], REF string a_valueStringList_out[], long a_obj_id , long a_insert_id) RPCFUNC ALIAS FOR "IMS.gm_insert.getAttribValuesById"
function double dbf_insert_getAttribValuesByIds(string a_tagStringList_in[], REF string a_valueStringList_out[], long a_obj_ids[] , long a_insert_ids[]) RPCFUNC ALIAS FOR "IMS.gm_insert.getAttribValuesByIds"
Implemented like this:
public function long uof_getattribvaluesbyid (string as_tagstringlist_in[], ref string as_valuestringlist_out[], long al_obj_id, long al_insert_id)
/* Funktion getAttribValues
* Liefert zu einem Insert (a_insert_id) alle Attribute
* tagstring (as_tagStringList_out[]) und valuestring (as_valueStringList_out[]).
* den es platziert ist (Figure (Standort).
* a_array_size: die Groesse des übergebenden Powerbuilder Arrays
* Return: Anzahl der Attribute, im Fehlerfalll -1
*/
long ll_return_rowcount
long ll_fetchsize
long ll_insert_id
long ll_obj_id
long ll_upperbound
long ll_cnt
string ls_valueStringList_out[], ls_empty_list[]
ll_insert_id = al_insert_id
ll_obj_id = al_obj_id
ll_fetchsize = Upperbound(as_tagstringlist_in[])
//Übergabespeicher reservieren
FOR ll_cnt=ll_fetchsize to 1 step -1
ls_valueStringList_out[ll_cnt]=space(512)
NEXT
//retrieve
if ll_fetchsize > 0 then
ll_return_rowcount = this.dbf_insert_getAttribValuesById(as_tagStringList_in[], REF ls_valueStringList_out[], al_obj_id, al_insert_id)
end if
ll_upperbound = upperbound(ls_valueStringList_out)
//Leerstellen der Reservierung entfernen
FOR ll_cnt=1 TO ll_upperbound
ls_valueStringList_out[ll_cnt] = RightTrim(ls_valueStringList_out[ll_cnt])
NEXT
//out
as_valueStringList_out[] = ls_valueStringList_out[] //copy to out buffer
ls_valueStringList_out[] = ls_empty_list[] //clear mem
return (ll_return_rowcount)
Hi Nikesh;
Oracle 18C is just coming out but, not yet fully. For example the "Express" version is still "coming soon". The initial release was for Linux only. Only in the past few weeks has there been an MS-Windows version. Although, its a heavy download and install of the full product (in many Gig's).
That being said, Appeon PB 2019 is already in "freeze" mode feature wise as Appeon prepares for the Beta release later this month. So I would imagine that Engineering will be targeting support for this new Oracle 18C DBMS release in either PB2019 R2 or R3 in 2019/2020.
In the mean-time, if the O18C client is backwards compatible to O12C, then it should work with PB2017R3. However, this has still not yet been tested (AFAIK) as O18C is still "coming out of the gate" as we speak. It will be interesting to test PB2017R3 later this month or next when the full O18C rollout is ready.
HTH
Regards .. Chris
Hi David,
Thnaks for advise.I am referring the client version.
Regards
Nikesh
Good Morning Nikesh
I assume that you are referring to the database server version rather than the client version.
I have not personally tried it, but I cannot see any reason why it should not work. You may have to use an older client for PB but that should not be a problem. 18c is all about how the DB is managed for you.
Hope that helps
David
Technical Director
Powersoft