Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

हाइबरनेट (EntityManager) या JPA का उपयोग करके Oracle फ़ंक्शन या प्रक्रिया को कैसे कॉल करें?

Oracle फ़ंक्शन या संग्रहीत कार्यविधि को निम्न तरीके से EntityManager का उपयोग करके कॉल किया जा सकता है।

Oracle समारोह के लिए

वापसी प्रकार के रूप में sys_refcursor के साथ एक फ़ंक्शन बनाएं

CREATE OR REPLACE FUNCTION my_function
(p_val IN varchar2)
    RETURN SYS_REFCURSOR
  AS
    my_cursor SYS_REFCURSOR;
  BEGIN
    OPEN my_cursor FOR SELECT emp_name FROM employees
    WHERE lower(emp_name) like lower(p_val||'%');
    RETURN my_cursor;    
  END;

इकाई वर्ग में, फ़ंक्शन को इस रूप में परिभाषित करें

@javax.persistence.NamedNativeQuery(name = "getFunc", query = "{? =  call
my_function(:empName) }", resultClass = Employee.class, hints = {
@javax.persistence.QueryHint(name = "org.hibernate.callable", value = "true") })

Oracle संग्रहित प्रक्रिया के लिए

sys_refcursor . के साथ प्रक्रिया बनाएं पहले OUT पैरामीटर के रूप में

CREATE OR REPLACE PROCEDURE myProcedure(p_cursor out sys_refcursor,
     p_val  in varchar2
)
 AS
BEGIN
     OPEN o_cursor FOR
          SELECT     emp_name 
             FROM     employees 
            WHERE     LOWER (emp_name) LIKE lower(p_val||'%');

इकाई वर्ग में प्रक्रिया को इस रूप में परिभाषित करें

@javax.persistence.NamedNativeQuery(name = "getProc", query = "{ call
my_procedure(?,:empName) }", resultClass = Employee.class, hints = {
@javax.persistence.QueryHint(name = "org.hibernate.callable", value = "true") })

और अंत में डीएओ क्लास कॉल फंक्शन या प्रक्रिया के रूप में

Query query = entityManager.createNamedQuery("getFunc"); // if procedure then getProc 
query.setParameter("empName","smith"); 
query.getResultList(); 

धन्यवाद



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. UTF-8 के बजाय windows-1252 का उपयोग करने में कुछ भी गलत है

  2. ODBC व्यवस्थापक Oracle TNS नाम फ़ाइल नहीं ढूँढ सकता

  3. क्रॉन अभिव्यक्ति को दिनांक/समय प्रारूप में कनवर्ट करने के लिए SQL क्वेरी

  4. कौन सा संस्करण और 32 बनाम 64 बिट ऑरैकल ड्राइवर स्थापित हैं, यह निर्धारित करने के लिए वीबीएस और रजिस्ट्री का उपयोग करना

  5. Oracle फॉर्म 6i . में स्थानीय डिस्क पर संग्रहीत पीडीएफ फाइल प्रदर्शित करें