0
這是我的代碼的java在一個匿名PLSQL塊構成一個功能的一部分:SGBD oracle是否始終以相同的順序執行匿名plsql的查詢?
*String p ="FUNCTION get_result RETURN varchar2 AS "
+"BEGIN "
+"sql_error:='ok';"
+query1+";"
+query2+";"
+query3+";"
+"COMMIT;"
+"RETURN sql_error; "
+"EXCEPTION "
+"when others then "
+"ROLLBACK;"
+"end;";*
其中查詢1,2和3是SQL查詢;有時候query2沒有被執行,這不會產生事務錯誤並且查詢1和3並且被提交。我想知道它是如何可能的,我怎樣才能糾正它。 我也想知道哪些程序是之間更好地調用匿名塊語句和statement.addBatch
我想知道如何管理該執行操縱許多序列交易的工作階段。 我發現在事務中使用許多seauences會導致oracle不會發回給用戶的錯誤。他們有時在sequence.nextval上獲得2次執行的相同值? 謝謝
這是一個函數,而不是匿名塊;但是對於兩個PL/SQL塊中的語句總是以相同的順序運行。如果使用該定義調用函數,則您的查詢2將始終執行。 (這是一個非常奇怪的設計,BTW)。在不瞭解任何有關語句或數據的任何信息的情況下,或者調用此代碼或函數時,無法說明爲什麼它看起來並未執行。 –
Oracle可以使用多個線程來執行過程嗎? – ValerieMT
你的意思是從多個客戶端會話同時執行相同的過程?是。或者在執行一個實例時內部使用線程?我想象如此,可能在不同的平臺上有不同的程度。儘管每個調用在邏輯上都是完整的,但塊中的語句將按照您指定的順序執行。例如,您可以看到來自同時調用的顯然很奇怪的事情,具體取決於過程的做法以及是否/何時提交。 –