Database
 sql >> Datenbank >  >> RDS >> Database

Ändern, wie isql SQL ausführt

isql wird normalerweise als Tool zur Fehlerbehebung verwendet. Wenn Sie beispielsweise ein Problem mit Ihrem ODBC-Back-End haben, hilft Ihnen isql dabei, festzustellen, ob das Problem bei Ihrer Anwendung liegt (d. h. erhalten Sie immer noch dasselbe Problem in isql wie in Ihrer Anwendung) oder woanders.

-e von isql flag ermöglicht es Ihnen zu ändern, wie isql SQL ausführt. Auf diese Weise können Sie simulieren, wie sich Ihre Anwendung diesbezüglich verhält.

So finden Sie heraus, welche Methode Ihre Anwendung zum Ausführen von SQL verwendet:

  1. Fügen Sie diese Zeilen zu /etc/odbcinst.ini hinzu:
    [ODBC]
    Trace=Yes
    TraceFile=/tmp/sql.log
  2. Führen Sie eine Abfrage in Ihrer Anwendung aus.
  3. Öffnen Sie /tmp/sql.log in einem Texteditor. Wenn die Protokolldatei „SQLPrepare“ enthält, verwendet Ihre Anwendung diese ODBC-API. Andernfalls wird SQLExecDirect verwendet .
  4. In /etc/odbcinst.ini , schalten Sie die ODBC-Ablaufverfolgung aus:
    [ODBC]
    Trace=No
    TraceFile=/tmp/sql.log

Standardmäßig verwendet isql SQLPrepare und SQLExecute um SQL-Anweisungen auszuführen.

So verwenden Sie SQLExecDirect Fügen Sie stattdessen das -e ein Flag auf der Kommandozeile:

 /usr/local/easysoft/unixODBC/bin/isql.sh -e -v SQLSERVER_SAMPLE
SQL> select mycol from mytable