Vous n'êtes pas identifié(e).
J'ai publié ma question sur le Github du connecteur JDBC et ils m'ont aidé à trouver le problème.
A des fin de débug je faisais un preparedStatement.toString() dans ma boucle de préparation de batch. En l'enlevant la vitesse est correcte.
Ce qui est étrange est que le toString n'a pas d'impact avec la version 42.7.5 et antérieur...
Bonjour,
Dans mon application Java je fais des INSERT en batch avec :
preparedStatement.addBatch();
et tous les XXX je fais :
preparedStatement.executeBatch();
J'utilise le JDBC Driver 42.7.5 en production, pas de soucis mais à partir de la version 42.7.7 (je n'ai pas testé la version 42.7.6 parce que noté avec une vulnérabilité sur Maven!?)
J'ai fais le test plusieurs fois avec des données différentes...
La vitesse passe de +- 5500/sec (42.7.5) à +- 200/sec (42.7.7 ou plus)
N'ayant rien changé à mon code Java cela vient à coup sûr du JDBC Driver
Une idée ?
Merci d'avance.
Bonjour,
J'ai un DOMAIN qui est VARCHAR(50)
Je voudrais qu'il devienne de type TEXT pour ne plus avoir de contrainte de longueur.
Est-ce possible avec ALTER DOMAIN ?
Merci d'avance.
Si mes souvenirs sont bons, à l'époque de Java 6,7,8 il y avait un "nommage" avec les extensions jre6 jre7,jre8, etc...ça viens de là.
Mais depuis la version??? c'est que jre8 pour Java 8 ou plus.
Bonjour,
A priori, vous devriez pouvoir utiliser une version plus récente.
On peut tout trouver les sites :
- pgJDBC : https://jdbc.postgresql.org/download/
- Maven : https://mvnrepository.com/artifact/org. … postgresql
Mais c'est plus complet sur Maven (sources, javadoc, ...)
Est ce que vous avez essayé de lancer l'installateur de PostegreSQL en mode administrateur ?
Bonjour,
Pour info, il me semble qu'avec une SEQUENCE, la valeur créer est perdue si l'insertion échoue.
Exemple :
nextval = 10
Tentative d'INSERT avec 10
nextval passe à 11 même si l'INSERT échoue
Et l'INSERT suivant sera tenté avec 12
Si qlq a une expérience avec la combinaison :
- Windows
- Apache
- HTTP/2
- PHP
- PostgreSQL
Ce serait cool de partager.
Merci d'avance.
Mais il faut quand même certains fichiers/modules pour le support PostgreSQL, pour par exemple le support des LargeObject...pgsqlLOBOpen ?
Bonjour,
À priori vous n'avez vraiment besoin de qu'une lib php avec le support de postgres venant de l'installeur postgres (et encore, la libpq a une très bonne compatibilité ascendante vous pourriez utiliser n'importe quelle. version). Tout le reste est spécifique à apache2 et non postgres, vous pouvez donc l'installer depuis n'importe quelle source dédiée apache2 plutôt que postgres.
Désolé mais c'est pas très clair...
Bonjour,
Pour mon site j'utilise :
- Windows 11 Pro
- PostgreSQL 15.2
- Package Apache/PHP qui vient du StackBuilder (de l'installation PG) avec les versions Apache 2.4.53 et PHP/5.5.38
Est-ce que http/2 est possible avec ce que j'utilise ?
Dans les dossiers de Apache je ne vois pas de mod_http2 donc j'imagine que la réponse est non.
Mais comment faire alors ?
Peut-on y ajouter le mod_http2 et si oui comment ?
Ou quel autre package Package Apache/PHP pour PostgreSQL faut-il utilisé pour le support http/2 ?
Merci d'avance.
Si vous avez utilisé les options par défaut lors de l'installation les logs de PG se trouvent dans "C:\Program Files\PostgreSQL\15\data\log" et regardez le contenu du fichier le plus récent. Son doit être du genre "postgresql-2023-03-24_090156.log"
Bonjour,
Je suis curieux...
Pourquoi migrer vers PG13 et pas PG15 directement ?
Si le service s'arrête c'est qu'il y a un soucis de configuration...voir les logs
Si c'est une instance vierge, à la limite vous pouvez désinstaller et réinstaller.
L'état du service PostgreSQL n'est pas "en cours" donc pas démarré.
Reste à savoir pourquoi...
Avez-vous configuré le pare-feu pour autoriser PostgreSQL ?
Bonjour,
Il est quand vraiment dommage qu'il n'y ai pas la possibilité de réencoder les mots de passe en scram-sha...
Un moyen de ne pas incrémenter si échec d'INSERT ?
Bonjour,
Il suffit de choisir le type de colonne SERIAL pour la colonne ID et PostgreSQL créera une séquence.
Dans le fichier CSV, ne pas prendre la colonne ID, PostgreSQL se charge de tout.
A chaque insertion dans la table ID sera auto-incrémenté.
Trop cool, ça fonctionne.
Grand merci.
Pas de PK...
Bonjour,
Je cherche les doublons avec ce query
WITH CTE AS (SELECT art_id,
prix,
maj,
ROW_NUMBER() OVER(PARTITION BY art_id,
maj
ORDER BY maj,prix DESC) AS DuplicateCount
FROM historique_prix
SELECT * FROM CTE WHERE DuplicateCount > 1
Et voici le résultat
|art_id|prix|maj|duplicatecount|
|------|----|---|--------------|
|6739|94.00|2021-09-01 15:54:47.000|1|
|6739|88.00|2021-09-01 15:54:47.000|2|
|6739|95.00|2021-09-20 22:29:47.000|1|
|6739|96.00|2021-09-30 10:29:40.000|1|
|6739|93.00|2021-10-04 09:26:22.000|1|
|6739|91.00|2021-10-04 09:26:22.000|2|
|6739|92.00|2021-10-05 17:23:03.000|1|
|6739|93.00|2021-10-08 10:50:33.000|1|
|6739|87.00|2021-10-11 10:27:02.000|1|
|6739|88.00|2021-10-15 08:59:32.000|1|
|6739|87.00|2021-10-15 10:29:06.000|1|
|6739|84.00|2021-10-25 10:28:42.000|1|
|6739|85.00|2021-10-26 10:28:14.000|1|
|6739|84.00|2021-10-29 08:58:25.000|1|
|6739|82.00|2021-11-01 09:32:21.000|1|
|6739|83.00|2021-11-12 12:52:48.000|1|
|6739|84.00|2021-11-17 09:49:58.000|1|
|6739|85.00|2021-11-23 10:04:03.000|1|
|6739|84.00|2021-11-30 11:34:21.000|1|
|6739|85.00|2021-12-20 11:26:21.000|1|
|6739|84.00|2021-12-24 13:42:04.000|1|
|6739|83.00|2022-01-13 10:44:55.000|1|
|6739|86.00|2022-01-17 11:16:58.000|1|
|6739|89.00|2022-01-18 16:33:24.000|1|
|6739|86.00|2022-01-18 16:33:24.000|2|
|6739|90.00|2022-01-18 16:35:24.000|1|
|6739|86.00|2022-01-18 16:35:24.000|2|
|6739|91.00|2022-01-18 16:38:40.000|1|
|6739|90.00|2022-01-18 16:38:40.000|2|
|6739|93.00|2022-01-27 10:57:11.000|1|
|6739|88.00|2022-01-29 14:56:44.000|1|
|6739|87.00|2022-02-01 10:56:47.000|1|
|6739|86.00|2022-02-04 09:49:44.000|1|
|6739|87.00|2022-02-24 11:04:31.000|1|
|6739|88.00|2022-02-25 12:38:54.000|1|
|6739|89.00|2022-03-02 13:37:14.000|1|
|6739|90.00|2022-03-07 14:02:54.000|1|
|6739|89.00|2022-03-10 10:13:31.000|1|
|6739|90.00|2022-03-14 09:40:04.000|1|
|6739|89.00|2022-03-15 11:10:32.000|1|
|6739|90.00|2022-03-28 09:49:49.000|1|
|6739|89.00|2022-03-29 11:50:02.000|1|
|6739|88.00|2022-03-30 11:49:29.000|1|
|6739|89.00|2022-04-01 11:05:08.000|1|
|6739|86.00|2022-04-04 10:58:34.000|1|
|6739|87.00|2022-04-05 10:58:35.000|1|
|6739|88.00|2022-04-08 09:37:39.000|1|
|6739|87.00|2022-04-11 09:37:46.000|1|
|6739|88.00|2022-04-13 09:37:37.000|1|
|6739|87.00|2022-04-14 16:47:16.000|1|
|6739|85.00|2022-04-19 10:06:22.000|1|
Mais si j'essaie de supprimer les doublons, j'ai une erreur.
WITH CTE AS (SELECT art_id,
prix,
maj,
ROW_NUMBER() OVER(PARTITION BY art_id,
maj
ORDER BY maj,prix DESC) AS DuplicateCount
FROM historique_prix WHERE art_id = 6739)
DELETE FROM CTE WHERE DuplicateCount > 1
Et voici l'erreur.
SQL Error [42P01]: ERREUR: la relation « cte » n'existe pas
Position : 300
Error position: line: 9 pos: 299
Je ne comprends pas...
A l'aide svp.
Merci d'avance.
Bonjour,
Je te mets sur la voie...
Ta requête cherche les sociétés dont le nom est EGAL à 'Bike'
Je te laisse réfléchir.
Une piste...
Comme il y a un espace entre Program et Files
Est-ce le nom du chemin complet est bien entre guillemets qlq part...
J'ai trouvé...
Voici la ligne GRANT correcte.
EXECUTE 'GRANT SELECT ON LARGE OBJECT ' || oid_data.id || ' TO ' || user_for_grant;