En utilisant DBI :: DatabaseHandle # execute ou DBI :: DatabaseHandle #, il n'est pas possible d'exécuter un script sql (avec plusieurs instructions sql). Il échoue avec l'erreur suivante:Exécution du script SQL à partir de Ruby
ERREUR: ne peut pas insérer plusieurs commandes dans une déclaration préparée
J'ai essayé d'utiliser la voie « non préparé » à l'aide DBI :: DatabaseHandle # ne (le doc dit qu'il « va directement à la mise en œuvre de DBD ") mais il continue à lancer la même erreur.
extrait de code:
require 'dbd/pg'
require 'dbi'
DBI.connect("dbi:pg:database=dbname", db_user, db_password, db_params) do |dbh|
schema = IO::read(schema_file)
dbh.do(schema)
end
J'utilise
rubis 1.8.6 (24/09/2007 patchlevel 111) [i386-mswin32]
DBI-0.4.3
DBD-pg-0.3.9
pg-0.9.0-x86-mswin32
Merci beaucoup!
Pour exécuter plusieurs requêtes préparées dont j'ai besoin pour analyser le script SQL en utilisant un certain analyseur SQL je suppose? Comment faire cela à ruby? Je ne comprends pas votre but d'utiliser une fonction. – nakhli
Je parlais d'une fonction PostgreSQL, pas d'une fonction ruby. –