sql >> Databasteknik >  >> RDS >> Database

Ändra hur isql kör SQL

isql används vanligtvis som ett felsökningsverktyg. Till exempel, om du har problem med din ODBC-backend, hjälper isql dig att identifiera om problemet ligger i din applikation (dvs. får du fortfarande samma problem i isql som du får i din applikation) eller någon annanstans.

isqls -e flaggan låter dig ändra hur isql kör SQL. Genom att göra detta kan du simulera hur din applikation beter sig i detta avseende.

För att ta reda på vilken metod din applikation använder för att köra SQL:

  1. Lägg till dessa rader i /etc/odbcinst.ini:
    [ODBC]
    Trace=Yes
    TraceFile=/tmp/sql.log
  2. Kör en fråga i din ansökan.
  3. Öppna /tmp/sql.log i en textredigerare. Om loggfilen innehåller "SQLPrepare" använder din applikation detta ODBC API. Annars använder den SQLExecDirect .
  4. I /etc/odbcinst.ini , stäng av ODBC-spårning:
    [ODBC]
    Trace=No
    TraceFile=/tmp/sql.log

Som standard använder isql SQLPrepare och SQLExecute för att köra SQL-satser.

För att använda SQLExecDirect inkludera istället -e flagga på kommandoraden:

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

  1. Hämtar okänd primärnyckel för tabellen medan ID:t finns där

  2. Tillstånd nekad för relation

  3. Är det möjligt att skicka tabellnamn som en parameter i Oracle?

  4. Hur använder jag CREATE OR REPLACE?