ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 在oracle中调用java程序 (转)

在oracle中调用java程序 (转)

原创 Linux操作系统 作者:victor1010 时间:2010-01-13 16:05:16 0 删除 编辑

http://www.blogjava.net/willpower88/archive/2006/07/14/58189.html

在oracle中调用java程序
一、helloWord
1 编写JAVA程序

create   or   replace   and  compile java source named hello  as
 
public    class  Hello   {
        static   
public   String Message(String name)   {
           
return    " Hello,  "    +   name;
       } 
} 
 
/  

2 发布JAVA程序

create   or   replace   function  hello (name  VARCHAR2 )   return    VARCHAR2
     
as  language java name
      
'  Hello.Message (java.lang.String) return java.lang.String  '  ;
 
/  

3 使用发面的JAVA程序

select  hello( ' world! ' )  from  dual;
HELLO(
' world! ' )
-- -------------
Hello world!

    
二、在JAVA程序中使用SQL
1 编写JAVA程序

create   or   replace   and  compile java source named test  as
import java.sql.
* ;
import java.
text .DateFormat;
import java.
text .SimpleDateFormat;
import java.util.
* ;
import java.util.Date;

import com.ccit.wcsmp.comm.vo.daovo.MBTResultVO;
import oracle.sql.ARRAY;
import oracle.sql.ArrayDescriptor;
public  class Test
{
  static 
public  String  message(String name) {
       String sql 
=  " select  sysdate  as  dd  from  dual";
       String tmpStr 
=   null ;
       PreparedStatement pstmt 
=   null ;
       ResultSet rs 
=   null ;
       Connection conn
= null ;
        try
        {
             conn 
=  DriverManager.getConnection("jdbc: default :connection:");
             pstmt 
=  conn.prepareStatement(sql);
             rs 
=  pstmt.executeQuery();
             
             
if (rs. next ())
          tmpStr 
=  rs.getString("dd");
        
else
          tmpStr 
=  name;
         }
        catch(SQLException e)
        {
            System.err.println(e.getMessage());
        }
        finally
        {
            try
            {
                rs.
close ();
                pstmt.
close ();
                
/* if((conn!=null)||!conn.isClosed())
                    conn.close();
*/

            }
            catch(SQLException e)
            {
                System.err.println(e.getMessage());
            }
        }
       
return  tmpStr;
   }
}
/

2 发布JAVA程序

create   or   replace   function  test (name  varchar2 )  return   varchar2
 
as  language java name
' Test.message(java.lang.String) return java.lang.String ' ;
/

3 使用发面的JAVA程序

  select   test(  '  xx  '  )   from   dual ;

TEST( 
'  XX  '  )
 
--  ------------------------------------------------------------------------------ 
  2006   -   07   -   14     14  :  37  :  40.0  

 

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8102208/viewspace-625075/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-04-29

  • 博文量
    296
  • 访问量
    626158