代码之家  ›  专栏  ›  技术社区  ›  Ryan Thames

Windows批处理文件中的SQL语句

  •  2
  • Ryan Thames  · 技术社区  · 17 年前

    编辑: 我正在使用Oracle v10g

    7 回复  |  直到 17 年前
        1
  •  3
  •   Dave Costa    17 年前

    对于单个命令,您可以使用以下技巧:

    echo select * from dual; | sqlplus user/pw@db
    
        2
  •  3
  •   Mehrdad Afshari    17 年前

    要在SQLServer2005/2008上运行某些东西,可以使用 sqlcmd 命令行实用程序。 sqlcmd -h 打印开关列表。

        3
  •  2
  •   Bevan    17 年前

    简短回答:不可以。批处理文件本身无法做到这一点。

    详细回答:根据您使用的是哪种数据库服务器,以及命令行客户端提供的功能,您可能能够接近。

    isql -S server -D database -U user -P password -i script
    
        4
  •  1
  •   Thuglife    17 年前

    你可以用 sqlcmd (对于sql server)或 System.Data.Odbc.OdbcCommand 从…起 powershell

        5
  •  0
  •   Diomidis Spinellis    17 年前

    的odbc命令 outwit tool suite 允许您在已为其定义适当ODBC数据源的任何数据库上运行select语句。

        6
  •  0
  •   Andy Joiner    15 年前

    你可以用 http://tekkies.co.uk/go/runsqloledb

    例如 RunSQLOLEDB“Provider=SQLOLEDB;数据源=(本地);…”选择GetDate() RunSQLOLEDB@ConnectionString.txt@Query.sql

        7
  •  0
  •   djangofan    14 年前

    @ECHO off
    SETLOCAL ENABLEDELAYEDEXPANSION
    :: batch file for sql query
    SET STARTDATE=20101010
    SET ENDDATE=20111109
    SET AGENCYNAME=Agency
    SET DBNAME=AccidentDB
    
    SET SQLSTRING=SELECT Acc.INC_ID,^
     Veh.MAKE, Veh.MODEL, Veh.LIC_NUM^
     FROM Acc,^
     lnk_Acc_Veh, Veh^
     WHERE     (INC_NUM LIKE '20115000%')^
     AND lnk_Acc_Veh.link_id=Veh.key^
     AND lnk_Acc_Veh.link_id=Acc.key^
     AND Acc.date ^> '%STARTDATE%' OR Acc.date ^< '%ENDDATE%';
    
    CLS
    @ECHO.
    @ECHO.
    @ECHO DBNAME is %DBNAME%
    @ECHO.
    @ECHO SQLSTRING is "!SQLSTRING!"
    @ECHO.
    @ECHO ------------------------------------------------------
    @sqlcmd.exe -b -S localhost -E -d !DBNAME! -Q "!SQLSTRING!" -W
    @ECHO.
    @ECHO Report is done. Hit any key to close this window....
    @pause>nul