Il faut activer les 2 extensions "pgsql" et "pdo_pgsql" (pdo_pgsql se sert en couche basse de pgsql), les deux sont-elles bien activées ?
Il faut activer les 2 extensions "pgsql" et "pdo_pgsql" (pdo_pgsql se sert en couche basse de pgsql), les deux sont-elles bien activées ?
Bonjour,
Si vous n'utilisez pas de requête préparée, cela améliorera les performances. Avec certaines API (C, C++, Java notamment) il est aussi possible de bufferiser les requêtes avant de les...
Désolé, je pensais qu'ils avaient été abandonnés en 10g mais ils sont même toujours maintenus en 11g (ils ont la peau dure :)).
Merci de cette correction.
Je suis d'accord et je suis également contre les règles "immuables" et les "mythes" sur les SGBD. J'ai mal tourné ma phrase.
Cela ne s'appuie effectivement que sur mon expérience personnelle (sous...
Voilà ce qui me vient à l'esprit :
- Côté performances c'est possible car l'optimiseur fonctionne complètement différemment.
- Les types LONG et LONGRAW (si je me souviens bien) sont obsolètes...
Le problème vient d'ailleurs car une variable PLSQL de type VARCHAR2 est limitée à ~32500 octets et non 200, et un champ SQL de type VARCHAR2 à 4000 octets (dans une table par exemple).
En général, Oracle n'aime pas les NOT IN ... Et si on essayait un NOT EXISTS ?
INSERT INTO RF_VOLUMEPREPREAL
(CIRCUITPREPARATION, POINTDEVENTE, REFERENTIEL, UO, CODE_ETABLISSEMENT,...
En tant que variable d'environnement ça devrait marcher aussi (je crois que le registre est privilégié si les 2 sont renseignés).
La valeur de NLS_LANG est généralement la même sur le serveur et...
Si tu veux dire que PDO n'apporte rien dans ce domaine par rapport aux anciennes extensions, c'est tout à fait ça.
Ce problème de comptage de résultat n'est pas anodin et dépend essentiellement...
NLS_LANG est essentiellement à définir sur le "client" du point de vue d'Oracle, c'est à dire la machine à partir de laquelle vous vous connectez à Oracle, donc dans le cas de PHP le serveur web (qui...
delimiter |
drop function if exists toto|
create function toto (c int(1)) returns int(1)
begin
select @val := 1;
return @val;
end
|
delimiter ;
En fait si, l'identifiant de la CE est là :
ALTER TABLE table_02 ADD CONSTRAINT `FKtable_01`
FOREIGN KEY ( `t1_id` ) REFERENCES `table_01` ( `t1_id` );
Mais on ne le répète pas après...
Pour moi il y a une erreur de syntaxe, le 2e `FKtable_01` est de trop :
ALTER TABLE table_02 ADD CONSTRAINT `FKtable_01` FOREIGN KEY `FKtable_01` ( `t1_id` ) REFERENCES `table_01` ( `t1_id` )
...
Peut-être avec FORMAT_ERROR_BACKTRACE ? (>= 10.2 il me semble)
Ce n'est pas très propre ;) mais en castant en varchar ça marche :
SELECT *
FROM exploitation.compte
WHERE upper (compte.id_compte::varchar) = upper (742::varchar);
Edit : Je suis en 8.3.4
Ce qui est adapté lorsque l'on va de toute façon tout afficher, mais lorsque l'on a une recherche qui retourne potentiellement 500000 enregistrements, que l'on veut connaitre ce chiffre de 500000...
Non ce n'est pas grave : les valeurs en commentaires sont celles par défaut. Le problème vient d'ailleurs...
Je pense qu'il manque un client Oracle, non ? Suivez la procédure d'install pour voir...
Ah les erreurs PHP doivent être cachées ;)
Essayez ceci au début de votre page PHP :
<?php
error_reporting(E_ALL | E_STRICT);
ini_set('display_startup_errors', 1);
...
OK, donc vous lancez la 1ère requête une fois, puis bouclez sur les 12000 résultats pour lancer à chaque fois les 2 autres requêtes, soit environ 24000 requêtes, c'est bien ça ?
Là je comprends...
Aves oci8 il faut tester les retours de chaque fonction, si c'est false, ça a échoué.
Si vous avez le choix, prenez plutôt une interface objet, par exemple le composant Zend_Db du Zend Framework. ...
Pouvez-vous ajouter des indexes ? Il doit certainement en manquer. Le plus simple et le plus performant sera la bonne requête SQL optimisée + des indexes.
12000 enregistrements est relativement...
Non pas forcément, mais c'est moins évident à faire :)
Je vous soumets une idée.
L'idée serait de créer une fonction qui crée à partir du libellé actuel un autre libellé qui se trierait...
Je ne pense pas que ça va marcher car :
- on ne peut pas définir un curseur sur une requête dynamique
- je ne crois pas que l'on puisse récupérer le résultat du EXECUTE pour parcourir le curseur...
Non bien sûr ce ne serait pas uniquement pour le tri, mais plus pour une question d'intégrité, pour éviter les erreurs dans les différentes parties de ce libellé, qui visiblement correspondent bien à...
La gestion d'erreurs dans les procédures stockées MySQL est encore très insuffisante (comparée à Oracle ou PostgreSQL par exemple), mais ça se fait en utilisant des "Handlers", ce qui est préconisé...