【问题标题】:What is the advantage of using Sqsh with FreeTDS?将 Sqsh 与 FreeTDS 一起使用有什么优势?
【发布时间】:2012-10-18 22:53:31
【问题描述】:

这里的新手问题:我有 FreeTDS 工作并从 mint linux vm 查询 Microsoft SQL Server 2008 r2 db,读取 inter-webs,主要是 stackoverflow,有人提到我也应该在 FreeTDS 中使用 sqsh,@987654321 @,我不明白什么 sqsh,除了我猜是某种类型的 cli,因为我可以使用 FreeTDS 访问数据库,所以我可以使用 FreeTDS 来访问数据库。任何可以清除它的信息将不胜感激。

【问题讨论】:

    标签: linux bash command-line freetds sqsh


    【解决方案1】:

    我在 ubuntu 上使用 unixodbc 和 freetds 以及 perl 的 ODBC 模块。有时(虽然很少)我使用isql 进行快速查询,但仅此而已。 SQSH 类似于具有更好功能的 isql。查看 SQSH wiki

    SQSH 比 isql 有更多的功能。但是,我从未遇到过必须广泛使用 isql / sqsh 的用例。不管我有什么,我都是通过 perl 来做的。

    【讨论】:

    【解决方案2】:

    我过去经常使用 sqsh。真的很有帮助。

    如果您使用过 sybase/mSServer isql,您就会知道这真的很痛苦。没有对命令行编辑和历史记录的真正支持。最初创建 SQSH 是为了提供一个类似于 shell 的命令行环境来与您的数据库进行交互。从数据库中提取数据并保存到文件中非常容易使用。然后您可以根据需要编辑文件,并使用 bcp 或其他方法将数据加载到新表中。

    SQSH shell 支持环境变量、文件重定向(我不记得在内部使用输入方向,但可以编写

    select c1, c2, c3,c7, c120 from customer > customerFile
    

    非常方便。

    在左侧菜单的功能链接下的http://www.sqsh.org 上查看完整的功能列表。

    Commands 
    Variables 
    Redirection and Pipes 
    Aliasing 
    Command Substitution 
    Backgrounding & Job Control 
    SQL Batch History 
    Configurable Exit Status 
    Inter-Server BCP 
    Remote Procedure Calls 
    Semicolon "go" 
    Simple Scripting 
    Flow-of-Control  
    Functions  
    Multiple Display Styles 
    X Windows Support 
    Macro Pre-Processing 
    Miscellaneous 
    Commands
    

    请注意,控制流允许有 1 个返回多行结果集的查询,并对每条记录使用 dowhile 循环处理。这也支持if ... elif ..fi 块。我不记得使用过这些功能,但我找到了别名和环境变量,并且重定向为我节省了几个小时。

    也就是说,我是一个有动力的用户。文档不会向您提供所有答案,因此需要一些时间进行实验、摸索和审查。

    除了阅读过 TDS 之外,我对 TDS 没有任何经验。基本上你需要回答的问题是,我是不是 shell 命令行垃圾,我是否愿意花一点时间来学习如何在基于文本的 SQL 客户端中获得命令行功能。

    IHTH。

    【讨论】:

      【解决方案3】:

      TDS(表格数据流)是 Sybase 和 MSSQL 正在使用的本地客户端 - 服务器通信协议,并在 CT_Library 中实现,CT_Library 是一组专有的中间件软件和实用程序。 FreeDTS 是 CT-Library 的开源等价物。 Sqsh 使用 CT-Library 调用与服务器通信,并且可以与 Sybase CT-Library 或 FreeTDS 构建/链接。 Sybase CT-Library 仅支持 TDS 5.0 及以下版本,而 MSSQL 现在使用 TDS 7.0 或 8.0 版本。 FreeTDS 也支持这些协议版本。所以如果想让sqsh能够连接MSSQL,就需要FreeTDS作为中间件层。 FreeTDS 还附带了一些基本实用程序,可用于连接到服务器并执行一些 SQL 语句(fisql、tsql)。然而,Sqsh 提供了更多功能,例如真正的 shell。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-10
        • 1970-01-01
        • 1970-01-01
        • 2010-09-24
        • 2010-12-27
        • 2015-04-06
        相关资源
        最近更新 更多