0
同志、私は助けが必要です! JTDSドライババージョン1.3.1を使用してSQL Serverスクリプトを実行することはできません。以下の詳細。JTDS 1.3.1でSQL Serverスクリプトを実行できません
私はSQLスクリプトのいくつかの行を削除しようとしましたが、何も役立ちません。
SQLスクリプト:
USE [SomeScheme]
GO
DECLARE @ID int
, @Guid nvarchar(50)
, @Name nvarchar(250)
, @Caption nvarchar(250)
, @Description nvarchar(max)
SET @Description = NULL;
SET @Guid = 'EAID_4076F221_3910_4480_B49A_09621E214249';
SET @Name = 'datetime';
SET @Caption = 'datetime';
IF EXISTS(SELECT [Guid] FROM rdf.SimplePropertyTypes WHERE [Guid] = @Guid)
BEGIN
SET @ID = (SELECT ID FROM rdf.SimplePropertyTypes WHERE [Guid][email protected])
UPDATE rdf.SimplePropertyTypes
SET Name = @Name
, Caption = @Caption
, [Description] = @Description
WHERE [Guid][email protected]
END
ELSE
BEGIN
SET @ID = ISNULL((SELECT MAX(ID) FROM rdf.SimplePropertyTypes),0) + 1000
INSERT INTO rdf.SimplePropertyTypes(ID, [Guid], Name, Caption, [Description]) VALUES
(@ID, @Guid, @Name, @Caption, @Description);
END
SET @Description = NULL
Javaコード:
try (final Connection connection = sourceDataSource.getConnection();
final CallableStatement callableStatement = connection.prepareCall(sql)) {
callableStatement.executeUpdate();
}
例外のスタックトレース:
Caused by: java.sql.SQLException: Invalid JDBC escape syntax at line position 68 '=' character expected.
at net.sourceforge.jtds.jdbc.SQLParser.mustbe(SQLParser.java:412)
at net.sourceforge.jtds.jdbc.SQLParser.callEscape(SQLParser.java:554)
at net.sourceforge.jtds.jdbc.SQLParser.escape(SQLParser.java:1009)
at net.sourceforge.jtds.jdbc.SQLParser.parse(SQLParser.java:1178)
at net.sourceforge.jtds.jdbc.SQLParser.parse(SQLParser.java:165)
at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.<init>(JtdsPreparedStatement.java:111)
at net.sourceforge.jtds.jdbc.JtdsCallableStatement.<init>(JtdsCallableStatement.java:70)
at net.sourceforge.jtds.jdbc.JtdsConnection.prepareCall(JtdsConnection.java:2426)
at net.sourceforge.jtds.jdbc.JtdsConnection.prepareCall(JtdsConnection.java:2412)
at org.apache.commons.dbcp.DelegatingConnection.prepareCall(DelegatingConnection.java:308)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepareCall(PoolingDataSource.java:303)
ドライバ: JTDS 1.3.1
ヘルプが必要です。 GOがPreparedStatementsのでは許可されていません
は、単純な 'Statement'オブジェクトの代わりに、' CallableStatement'を使用してみてください。 –