J'ai deux serveurs qui tournent sous Oracle10g. L'un est dans un context US, l'autre EU, sinon pas de différence.
Un soft Delphi7 est en erreur "wrong number or types or arguments in call.." sur le serveur US alors qu'il tourne parfaitement sur le serveur EU
J'utilise le composant DBExpress TSQLStoredProc pour executer une procedure dans un package Oracle.
Lors d'essais j'ai constaté que l'ordre d'affichage des params est PAR_CURS,PAR_PARAMS,PAR_DATATYPE sur le serveur US alors que sur le serveur EU l'ordre d'affichage est PAR_DATATYPE,PAR_PARAMS,PAR_CURS
ce qui explique le message d'erreur (ordre figé dans le programme)
Mais pourquoi l'ordre n'est-il pas le même ?
J'ai alors tracé la requête SQL qui prépare les paramètres :
On remarque qu'il n'y a pas d'ordre de tri (ORDER BY) dans la requête SLQ; l'ordre de tri est donc tributaire de la configuration d'Oracle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Select * FROM SYS.ALL_ARGUMENTS A WHERE (A.DATA_LEVEL = 0) AND (A.OBJECT_NAME = 'ProcedureName' AND A.PACKAGE_NAME = 'PackageName'
Ma question : comment changer l'ordre de tri par defaut en jouant sur les paramètres (NLS_... ou autres) de configuration d'Oracle (au niveau Database, Instance ou session ?)
Rq:
- Ce problème est apparu lors d'un export base EU puis import sur base US des ressources Packages/Tables/Data pour le owner de travail
- J'ai modifié le programme pour tester avec l'ordre PAR_CURS,PAR_PARAMS,PAR_DATATYPE
mais le message suivant apparaît "Références de fournisseurs circulaires non autorisées"
Partager