Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL Server BULK INSERT à partir de Linux

La fonction BULK INSERT de Microsoft SQL Server vous permet de charger rapidement des données dans SQL Server.

Le pilote ODBC Easysoft SQL Server vous permet de profiter de cette fonctionnalité SQL Server depuis Linux :

  1. Sur votre machine Linux, téléchargez, installez et mettez sous licence le pilote ODBC SQL Server.

    Pour obtenir des instructions d'installation et de licence, consultez la documentation du produit du pilote ODBC SQL Server.

  2. Créez une source de données de pilote ODBC SQL Server dans odbc.ini qui se connecte à l'instance SQL Server dans laquelle vous souhaitez charger les données. Par exemple :
    [SQLSERVER_SAMPLE]
    Driver=Easysoft ODBC-SQL Server
    Description=Easysoft SQL Server ODBC driver
    Server=mymachine\myinstance
    User=mydomain\myuser
    Password=mypassword
    Database=mydatabase
  3. Utilisez isql pour créer une table SQL Server pour stocker les données. Par exemple :
    $ /usr/local/easysoft/unixODBC/bin/isql.sh -v SQLSERVER_SAMPLE
    SQL> CREATE TABLE BULK_TEST ( test_id integer, test_name varchar(10) )
  4. Créez un fichier contenant des données à insérer dans SQL Server :
    1,Apple
    2,Orange
    3,Plum
    4,Pear
  5. Enregistrez le fichier sous bulk.txt et copiez-le à un endroit où l'instance SQL Server peut accéder au fichier.

    Cela peut être sur la machine SQL Server ou sur un dossier partagé distant. SQL Server 2008 et versions ultérieures prennent en charge les chemins UNC (Universal Naming Convention) comme moyen de localiser le fichier.

    Pour notre test, nous avons placé le fichier sur un partage Samba :

    \\myhost\myshare
  6. Utilisez isql pour lancer l'insertion en bloc. Par exemple :
    SQL> BULK INSERT bulk_test FROM '\\myhost\myshare\bulk.txt' WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' )