問題タブ [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返します。このクエリに追加すると、複数の値が返されます。

GROUP BY tst_typeエラーを表示せずにMSSQLで試したクエリ

エラー: 列 'tst_type.tst_type' は、集計関数にも GROUP BY 句にも含まれていないため、選択リストでは無効です。

その後GROUP BY tst_type、MSSQLクエリに追加され、正常に動作し、複数の値が返されます。

しかし、私の要件は、GROUP BY fnを追加せずにMYSQLと同じように返すか、MYSQLのような単一の値を返す必要があることです

0 投票する
1 に答える
1992 参照

java - MS SQL での HikariCP ステートメントのキャッシュ (Microsoft JDBC ドライバー 4.1)

HikariCP 接続プールの MS SQL RDBMS でステートメント キャッシュを有効にするにはどうすればよいですか?

MySQL の場合は次の方法を使用します。

PostgreSQL の場合:

Oracle の場合、次のように動作します。

しかし、MS SQL 2012 以降については何も見つかりませんでした。

0 投票する
0 に答える
1313 参照

java - SQL インジェクションを回避するために OPENQUERY を使用するプリペアド ステートメント クエリのパラメーターを設定する方法

私のJavaアプリケーションでは、OPENQUERYを使用して、リモートリンクされたMSSQLサーバーでSQLクエリを実行し、結果を取得しています。以下は、私が使用している OPENQUERY の例です。

私のJavaクラスでは、以下のようにPreparedStatementを使用して、上記のOPENQUERYを以下のように実行しています。

上記のコードは期待どおりに機能します。ただし、問題は、SQL インジェクションの可能性があり、HP Fortify が SQL インジェクションの脆弱性があると報告していることです。

以下のように、PreparedStatement で setString を使用するように上記のコードを変更しようとしました。

ただし、上記のコードは期待どおりに機能しません。実行時に、ps.executeQuery() の呼び出しで以下の例外が発生します。

上記のコードで何が間違っているのかはっきりしません。MSSQL jdbc ドライバーが気に入らないようで、PreparedStatement で setString メソッドを呼び出してもパラメーターが正しく設定されませんでした。

誰かがこの問題に遭遇して解決しましたか? これを解決するための指針をいただければ幸いです。

0 投票する
2 に答える
1724 参照

mysql - SUM () ,CROSS JOIN クエリ

SUM & CROSS JOIN を使用した MYSQL クエリを実行しましたが、正常に動作しています。

MYSQL クエリ:

しかし、「列 'd.total' は、集計関数または GROUP BY 句のいずれにも含まれていないため、選択リストでは無効です」という表示で、MSSQL でこの同じクエリを実行しようとしています。

その後、クエリの最後に GROUP BY a.total を追加しました。ERROR IS: Divide by zero エラーが発生しました。

すべてのテーブルにレコードがありますが、クエリは間違っていますか?

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 に接続しようとしています。さまざまな例外が発生し、コマンドライン経由でサーバーへの認証を成功させる方法が 1 つもありません。同じユーザー名とパスワードを使用して、MS SQL クライアント経由でデータベースにログインできました。したがって、このユーザーのログインの問題は問題ではありません。問題は JDBC ドライバーにあると思います。

バージョン:

1) SQL Server 2008 - SP3

2) リキベース 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 ランタイム環境 (ビルド 1.7.0_71-b14)、Java HotSpot(TM) 64 ビット サーバー VM (ビルド 24.71-b01、混合モード)]

私がチェックしたこと:

1) TCP/IP が許可され、「YES」とマークされ、ポート 1433

2) 「2976923 2994310 FIX: SQL Server 2008 R2 または SQL Server 2008 を使用すると Oracle サブスクリプションのディストリビューション エージェントが失敗する」を解決するためにインストールされた MS SQL 2008 SP3 - 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 更新

b. 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 update

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 update

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 update

b. 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 update

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 update

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 更新

Java や Maven ではなく、liquibase コマンドライン引数による解決が必要です。Java と Maven を介して同じユーザーで正常に認証できましたが、展開を自動化するという私の目的は解決されません。この問題の解決にご協力ください。ありがとう!