这是我的功能:
public static void execute_delete_on_db(String pass, String login, String port,
String host, String table_name, String file_path) throws Exception {
Class.forName("oracle.jdbc.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@//"
+ host + ":" + port + "/xe", login, pass);
PreparedStatement statement = null;
Statement stmt = null;
String query = "delete from AA_ALL";
stmt = conn.createStatement();
stmt.executeQuery(query);
sql_statement.close();
conn.commit();
conn.close();
}
至少这是我职能中最重要的部分。以上代码工作正常。我试着通过调用这个sql语句来执行我的过程:
EXECUTE delete_all_rows_from_table('all');
在Java中它看起来像这样:
String query = "EXECUTE delete_all_rows_from_table('all')";
在数据库上它工作正常,但在Java中这给了我错误。 你能告诉我我做错了什么吗?
答案 0 :(得分:7)
你可以call
你的程序而不是这样执行:
String query = "{call delete_all_rows_from_table(?)}";
CallableStatement statement = connection.prepareCall(query);
statement.setString(1, "all");
statement.execute();
您可以在此处了解详情:JDBC CallableStatement – Stored Procedure OUT parameter example和JDBC Stored Procedure
答案 1 :(得分:2)
请注意,如果过程中有一些参数,则必须注册这些参数。
这是一个示例,假设我们已经导入了模块(java.sql.CallableStatement和java.sql.Types)并且已建立连接。
chrome_options = Options()
chrome_options.add_argument("--user-data-dir=chrome-data")
try:
browser = webdriver.Chrome(options=chrome_options)
except SessionNotCreatedException:
os.environ['WDM_LOG_LEVEL'] = '0'
browser = webdriver.Chrome(ChromeDriverManager().install(), options=chrome
browser.get('http://google.com')