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

Historique des commandes dans isql

Pour optimiser la compatibilité avec les systèmes Linux, le gestionnaire de pilotes unixODBC qui est distribué avec les pilotes ODBC Easysoft n'est pas conçu avec la prise en charge de readline sur cette plate-forme. Par conséquent, vous ne pouvez pas utiliser les touches fléchées pour parcourir l'historique de vos commandes SQL, dans isql. (L'exemple d'application ODBC fourni avec unixODBC.)

Si vous utilisez une version d'isql fournie avec un pilote Easysoft et souhaitez un historique des commandes, vous pouvez créer unixODBC avec le support readline et remplacer l'isql fourni par Easysoft par le nouveau que vous créez.

Dans l'exemple suivant, nous :

  1. Installez les fichiers d'inclusion de readline, condition préalable à la prise en charge de readline dans unixODBC.
  2. Vérifiez la version unixODBC fournie par Easysoft.
  3. Répliquer l'environnement de construction pour le gestionnaire de pilotes fourni par Easysoft (CFLAGS ).
  4. Installez unixODBC dans un répertoire temporaire, nous voulons seulement remplacer isql, nous ne voulons pas remplacer Easysoft ou le gestionnaire de pilotes du système.
$ sudo apt-get install libreadline-dev
$ cd
$ mkdir scratch
$ more /usr/local/easysoft/unixODBC_install.info   product: unixODBC
version: 2.3.0
date: Tue 30 Jan 15:51:04 GMT 2018
$ wget http://www.unixodbc.org/unixODBC-2.3.0.tar.gz
$ gunzip unixODBC-2.3.0.tar.gz
$ tar -xvf unixODBC-2.3.0.tar
$ cd unixODBC-2.3.0
$  export CFLAGS=`/usr/local/easysoft/unixODBC/bin/odbc_config --cflags`
$ ./configure --prefix=$HOME/scratch --sysconfdir=/etc
$ make
$ make install
$ sudo mv /usr/local/easysoft/unixODBC/bin/isql /usr/local/easysoft/unixODBC/bin/isql_easysoft
$ cd scratch
$ sudo cp ./isql /usr/local/easysoft/unixODBC/bin/
$ /usr/local/easysoft/unixODBC/bin/isql.sh -v SQLSERVER_SAMPLE
$ SQL> select 1 as test_col
+------------+
| test_col   |
+------------+
| 1          |
+------------+
SQLRowCount returns -1
1 rows fetched
SQL> select 1 as test_col # Up arrow pressed here