2017-09-15 62 views
0

比如我有这样的SQL脚本,我想从Java exectute它:有没有办法从java执行SQL脚本?

USE msdb ; 
GO 

EXEC dbo.sp_add_operator 
    @name = N'Dan Wilson', 
    @enabled = 1, 
    @email_address = N'danwi', 
    @pager_address = N'[email protected]', 
    @weekday_pager_start_time = 080000, 
    @weekday_pager_end_time = 170000, 
    @pager_days = 62 ; 
GO 
+0

[像这样(https://stackoverflow.com/questions/2071682/how-to-execute-sql-script-file-in-java)或者是[使用JDBC ](https://stackoverflow.com/q/1044194/6167855) – scsimon

+7

[如何在java中执行sql-script文件?](https://stackoverflow.com/questions/2071682/how-to-execute -sql-script-file-in-java) – MatSnow

+0

请注意,'GO'不是T-SQL语句,而是批分隔符。工具和实用程序发送前一批语句时遇到了这些语句,但您需要自己从Java中执行此操作, –

回答

-1

什么你要找的是Java数据库连接(JDBC)。 Oracle在其网站上提供了一个教程。

https://docs.oracle.com/javase/tutorial/jdbc/basics/index.html

+0

也许我需要更多地解释,当执行查询时,我收到以下内容:com.microsoft.sqlserver.jdbc .SQLServerException:'GO'附近的语法不正确,我所做的是将所有脚本放在一个String中,然后调用方法executeQuery(String); – Renato

+0

OP有一个SQL Server标签 – Simon

-1

嗯,我需要你使用的数据库,就知道了。对于Oracle,你可以尝试:

import java.sql.* ; 
String URL = "jdbc:sqlserver:thin:@amrood:1521:EMP"; 
String USER = "username"; 
String PASS = "password" 
Connection conn = DriverManager.getConnection(URL, USER, PASS) 
PreparedStatement pstmt = null; 
String SQL = "dbo.sp_add_operator @name = N'Dan Wilson', 
    @enabled = 1, 
    @email_address = N'danwi', 
    @pager_address = N'[email protected]', 
    @weekday_pager_start_time = 080000, 
    @weekday_pager_end_time = 170000, 
    @pager_days = 62 ; "; 
pstmt = conn.prepareStatement(SQL); 
stmt.executeUpdate(); or stmt.executeQuery(); 
+1

我想你可以看到SQL Server标签,不是吗? – Sami

+0

哦。我没有注意到对不起。让我编辑 – kranz

相关问题