问题,存储过程,Java代码如下。
在SQL Server Express Edition Java SE 8中。
PROCEDURE1
CREATE PROCEDURE [dbo].[Test1]
AS
DECLARE @UserList TABLE (UserId char(8))
INSERT @UserList SELECT '00000001'
SELECT UserId FROM @UserList
--and SELECT STATEMENT join to @UserList
GO
PROCEDURE2
CREATE PROCEDURE [dbo].[Test1]
AS
SELECT '00000001'
--and SELECT STATEMENT join to hard-code '00000001'
GO
Java
try (Connection con = ((DataSource) new InitialContext().lookup("java:comp/env/jdbc/myapp")).getConnection();
CallableStatement cstmt = con.prepareCall("{call [dbo].[Test1]}");
) {
boolean f = cstmt.execute();
ResultSet rs = cstmt.getResultSet();
问题
由jdbc进行PROCEDURE1调用,cstmt.execute()返回 false 。
jdbc调用PROCEDURE2,cstmt.execute()返回 true 。 为什么?
和目的
我希望使用存储过程使用动态表内参数的临时表。