问题标签 [mssql-jdbc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1675 浏览

sql-server - 带 IF() 语句的 MSSQL 选择查询

我有 MYSQL 查询,它工作正常查询是:

我试图在 MSSQL 中执行相同的查询,但它抛出错误。错误是:

我对这个查询做错了吗?

0 投票
2 回答
102 浏览

sql-server - MSSQL 查询应该返回与 MYSQL 相同的结果

我有 MYSQL 查询并且工作正常查询是:

上面的查询返回单个记录如果我GROUP BY tst_type在这个查询中添加它会返回多个值。

我在 MSSQL 中尝试的查询没有GROUP BY tst_type,它显示错误

错误是:列 'tst_type.tst_type' 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中。

之后添加GROUP BY tst_type到 MSSQL 查询中,然后工作正常并返回多个值。

但我的要求是它应该返回与 MYSQL 相同而不添加 GROUP BY fn 或者应该返回单个值,如 MYSQL

0 投票
2 回答
2114 浏览

sql-server - SQL Server:传递给 LEFT 或 SUBSTRING 函数的长度参数无效

我正在尝试执行 SQL ServerSUBSTRING查询,但它抛出错误。

查询是:

错误是:

消息 537,级别 16,状态 5,第 1 行
传递给 LEFT 或 SUBSTRING 函数的长度参数无效。

这个查询有什么问题吗?

0 投票
2 回答
3853 浏览

sql-server - RJDBC 无法从 MSSQL 服务器读取表

我在本地运行 R,数据库远程位于 MS SQL 服务器上。

我做我的准备工作:

然后我检查是否可以读取某些表的标题:

作品。接下来我尝试阅读完整的表格:

失败:

以 SQL 方式执行此操作也会失败:

失败:

并且没有引号:

失败:

知道为什么这会失败吗?

0 投票
1 回答
1992 浏览

java - MS SQL 上的 HikariCP 语句缓存 (microsoft JDBC driver 4.1)

如何在 MS SQL RDBMS 中为 HikariCP 连接池启用语句缓存?

对于 MySQL,它是通过:

对于 PostgreSQL,通过:

对于 Oracle,以下工作:

但我没有找到任何适用于 MS SQL 2012 及更高版本的东西。

0 投票
0 回答
1313 浏览

java - 如何设置使用 OPENQUERY 的 Prepared Statement 查询的参数以避免 SQL 注入

在我的 java 应用程序中,我使用 OPENQUERY 在远程链接的 MSSQL 服务器中执行 SQL 查询并获取结果。下面是我正在使用的 OPENQUERY 示例:

在我的 Java 类中,我使用 PreparedStatement 如下执行上述 OPENQUERY,如下所示:

上面的代码按预期工作。然而问题是它对 SQL 注入负责,并且 HP Fortify 将其报告为 SQL 注入易受攻击。

我试图将上面的代码更改为在 PreparedStatement 上使用 setString,如下所示。

然而,上面的代码并没有像我期望的那样工作。在运行时,我在调用 ps.executeQuery() 时遇到以下异常:

我不清楚上面的代码有什么问题。似乎 MSSQL jdbc 驱动程序不喜欢它,并且调用 PreparedStatement 上的 setString 方法没有正确设置参数。

有没有人遇到过这个问题并解决了?任何指向解决此问题的指针表示赞赏。

0 投票
0 回答
51 浏览

sql-server - MYSQL 查询只有 LIMIT,如何将查询修改为 MSSQL

我正在尝试将查询转换为 FROM MYSQLTO MSSQL。MYSQL查询:

MSSQL 查询:

如果我在 MYSQL 中有 limit x,则意味着我将在 MSSQL 中使用and 。但是,是在我的 java 代码运行时动态附加的。查询只有在MYSQL中,那么我怎样才能将查询修改为MSSQL。yBETWEEN xyxyLIMIT

0 投票
2 回答
1724 浏览

mysql - SUM () ,CROSS JOIN 查询

我使用 SUM 和 CROSS JOIN 进行 MYSQL 查询,它工作正常。

MYSQL查询:

但我试图在 MSSQL 中执行相同的查询,显示“列 'd.total' 在选择列表中无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。”

之后,我在查询末尾添加了 GROUP BY a.total,错误是:除以零错误。

我在所有表中都有记录,查询错误吗?

0 投票
1 回答
54 浏览

mssql-jdbc - “ms sql” 表示 microsoft SQL Server 或 MS Access

在 netbeans 中,在“ms-sql”的新数据库连接期间,我得到:

无法使用 com.microsoft.sqlserver.jdbc.SQLServerDriver 建立到 jdbc:sqlserver://localhost;databaseName=bombermario 的连接(到主机 localhost,端口 1433 的 TCP/IP 连接失败。 
错误:“连接被拒绝:连接。验证连接属性,检查 SQL Server 实例是否正在主机上运行并在端口接受 TCP/IP 连接,并且没有防火墙阻止与端口的 TCP 连接。

0 投票
1 回答
1753 浏览

sql - 带有 Liquibase 的 MS SQLServer JDBC 命令行 - 登录失败/TCP IP 异常/端口无效

我正在尝试使用 Liquibase 和 Microsoft JDBC Driver 4.1 连接到 Microsoft SQL Server 2008 SP3。我得到了各种异常,而不是通过命令行向服务器进行身份验证的单一成功方法。使用相同的用户名和密码,我可以通过 MS SQL 客户端登录到数据库。因此,该用户的登录问题不是问题。我相信问题出在 JDBC 驱动程序上。

版本:

1) SQL Server 2008 - SP3

2) Liquibase v3.3.2

3) JDBC 驱动程序-“Microsoft JDBC Driver 4.1 for SQL Server”-http ://www.microsoft.com/en-us/download/details.aspx?id=11774

4) JDK 版本 - 1.7.0_71" [Java(TM) SE Runtime Environment (build 1.7.0_71-b14), Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)]

我检查过的内容:

1)允许TCP/IP,标记为“YES”,端口1433

2) 安装 MS SQL 2008 SP3 以解决“2976923 2994310 FIX:使用 SQL Server 2008 R2 或 SQL Server 2008 时 Oracle 订阅的分发代理失败” - http://support.microsoft.com/kb/2653857

3) 为用户启用 SQL Server 身份验证和 Windows 身份验证

错误和命令行输入:

1 “com.microsoft.sqlserver.jdbc.sqlserverexception 用户登录失败”

命令行输入 -

一种。liquibase --driver=com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath=C:\MicrosoftJDBC\sqljdbc_4.1\enu\sqljdbc4.jar --url="jdbc:sqlserver://DBServer" --username=abcd --password=abcd123 --changeLogFile=db-changelog.xml 更新

湾。liquibase --driver=com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath=C:\MicrosoftJDBC\sqljdbc_4.1\enu\sqljdbc4.jar --url="jdbc:sqlserver://DBServer;databaseName=DBName;" --username=abcd --password=abcd123 --changeLogFile=db-changelog.xml 更新

C。liquibase --driver=com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath=C:\MicrosoftJDBC\sqljdbc_4.1\enu\sqljdbc4.jar --url="jdbc:sqlserver://DBServer;databaseName=DBName;" ; --username=abcd --password=abcd123 --changeLogFile=db-changelog.xml 更新

2 - 运行 Liquibase 时出现意外错误:com.microsoft.sqlserver.jdbc.SQLServerException:端口号 1433\DBName 无效。

命令行输入 -

一种。liquibase --driver=com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath=sC:\MicrosoftJDBC\sqljdbc_4.1\enu\qljdbc4.jar --url="jdbc:sqlserver://DBServer:1433/DBName" - -username=abcd --password=abcd123 --changeLogFile=db-changelog.xml 更新

湾。liquibase --driver=com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath=C:\MicrosoftJDBC\sqljdbc_4.1\enu\sqljdbc4.jar --url="jdbc:sqlserver://DBServer:1433\DBName" - -username=abcd --password=abcd123 --changeLogFile=db-changelog.xml 更新

c.liquibase --driver=com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath=C:\MicrosoftJDBC\sqljdbc_4.1\enu\sqljdbc4.jar --url="jdbc:sqlserver://DBServer\DBName" - -username=abcd --password=abcd123 --changeLogFile=db-changelog.xml 更新

3 运行 Liquibase 时出现意外错误:com.microsoft.sqlserver.jdbc.SQLServerException:与主机 DBServer/DBName、端口 1433 的 TCP/IP 连接失败。错误:“null。验证连接属性。确保 SQL Server 实例正在主机上运行并在端口接受 TCP/IP 连接。确保与端口的 TCP 连接未被防火墙阻止。”。

命令行输入 -

一种。liquibase --driver=com.microsoft.sqlserver.jdbc.SQLServerDriver --classpath=C:\MicrosoftJDBC\sqljdbc_4.1\enu\sqljdbc4.jar --url=jdbc:sqlserver://DBServer/DBName" --username= abcd --password=abcd123 --changeLogFile=db-changelog.xml 更新

我需要通过 liquibase 命令行参数而不是通过 Java 或 Maven 进行解析。我能够通过 Java 和 Maven 成功地对同一用户进行身份验证,但这并不能解决我自动化部署的目的。请帮助解决此问题。谢谢!