L'insertion de données BLOB dans DB2 à l'aide de Requête SQL
Je suis coincé dans une situation où j'ai besoin d'insérer des données dans une colonne blob par la lecture d'un fichier du système de fichiers dans DB2 (DB2 Express C sur Windows 7).
Quelque part sur internet, j'ai trouvé ce INSERT INTO ... VALUES ( ..., readfile('filename'), ...);
mais ici readfile n'est pas une fonction intégrée de fonction, mais j'ai besoin de créer à l'aide de l'UDF (langage c des bibliothèques), mais qui pourrait ne pas être une solution utile.
Quelqu'un peut-il nous informer comment insérer des valeurs BLOB à l'aide de la commande d'Insertion.
- plate-forme et la version de DB2?
- DB2 Express C sur Windows 7
- Il est intéressant de noter, DB2 for i 7.1 a un GET_BLOB_FROM_FILE() fonction. Mais DB2 pour LUW 10.5 ne semble pas.
- DB2 for i 7.1, je n'ai pas le nom de plateforme ici. Est-il worksround pour Windows. Peut-il être exécuté sur ZOS(mainframe)
- Désolé, DB2 for i est seulement disponible en tant que partie intégrante de la IBM i système d'exploitation, qui ne fonctionne que sur IBM Power ou PureFlex Systems, IBM PUISSANCE des processeurs.
- Donc, pas d'options que ce soit
Vous devez vous connecter pour publier un commentaire.
1) Vous pouvez utiliser CHARGE ou L'IMPORTATION via ADMIN_CMD. De cette façon, vous pouvez utiliser SQL pour appeler l'administration de la procédure stockée qui va appeler l'outil. L'importation ou de la Charge peut lire les fichiers puis de les mettre en ligne.
Vous pouvez également envelopper ce processus en utilisant une table temporaire qui va lire les données binaires à partir du fichier, insérez-la dans la table temporaire, puis le retourner à partir de la table.
2) Vous pouvez créer un procédure stockée ou UDF mis en œuvre en Java ou en C, qui va lire les données, et ensuite insérer dans la ligne.
Je n'ai pas essayé, mais vous pouvez également utiliser les modules qui gèrent les LOBs http://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.apdv.sqlpl.doc/doc/r0055115.html
Cette option est uniquement disponible dans DB2 LUW depuis la version 9.7
J'ai réussi à le faire en utilisant IBM Data Studio avec la requête suivante:
Et de la sélection d'un fichier à partir de dialogue pop-up.
En quelque sorte, la même méthode de RAD 8 ne montre pas une option pour charger blob type de colonne de la même façon.
D'abord et avant tout, par IBM docs toutes les données MÉTIER dans DB2 devez disposer des éléments correspondants dans plus d'une colonne LOB définies dans une table. Voir les docs par exemple
CREATE
consolidés.Une fois ce schéma est préparé, vous pourrez alors exécuter une
LOAD
de commande qui peut importer avec les autres champs de données où blob contenu est référencé par les chemins de fichiers. Ci-dessous est une démo avec un Employés table:De la Table DB (exemple de tableau)
FICHIER CSV (virgule étant délimiteur par défaut dans
LOAD
sans les en-têtes)DB2 CHARGE (version simple, à l'aide de valeurs par défaut pour de nombreux autres Les paramètres de CHARGE)
Lignes de commande
DB2 SQL de la requête pour insérer le fichier JPG dans le tableau
create table nom_table(nom_colonne BLOB) /* BLOB est le type de données
insert into nom_table(nom_colonne)values(blob('c:\data\winter.jpg'))
c:\data\ son chemin et winter.jpg son nom de l'image