【发布时间】:2014-06-23 07:25:37
【问题描述】:
我想知道如果一个方法不是在 Java 线程中调用,而是从另一个线程或语言调用,比如 plsql。
据我所知,plsql没有线程,但它有会话,如果我希望从plsql过程中调用的方法可以同步呢?
我的问题是
同步关键字是否还能正常工作
这个调用是否创建了一个 java 线程
是否同步关键字或其他 Java 并发对象(如 Semaphore、conditionObject)仅在 Java 线程中工作?
pl/sql 的调用是这样的:
language java name 'xxx.xxx.xxx.Engine.execute(
java.lang.Integer,
java.lang.String,
java.sql.Timestamp,
java.sql.Timestamp,
java.lang.Long,
java.lang.Long,
java.lang.Long,
java.lang.Long,
java.lang.Long,
java.lang.Long,
java.lang.Long,
java.lang.Long,
java.lang.String,
java.lang.Long )';
而execute方法是静态方法。
【问题讨论】:
-
如何从 plsql 调用 java 代码?请分享一些代码sn-p。给你一个好的答案可能会有所帮助。
-
我们不能直接调用 java 方法,而是可以从任何 PL/SQL 块、子程序或包中调用 Java 存储过程。
-
嗨,M.Sharma,“我们不能直接调用 java 方法”是什么意思。你的意思是“execute”方法不是Java方法,而是Java存储过程?
标签: java oracle plsql synchronization synchronized