Oracle Native Dynamic SQL

Sotto un esempio di una funzione Oracle per creare una query dinamica.

CREATE OR REPLACE FUNCTION GET_TAB1_BY_ITEM(P_FIELD VARCHAR2, P_ITEM VARCHAR2) RETURN 

VARCHAR2
    IS 
    
    QSTR       VARCHAR2(10000);
    RESULT    VARCHAR2(32000);
    
 BEGIN
        
      QSTR := 'SELECT '|| P_FIELD || ' FROM TAB1 WHERE TAB1.ITEM=:p1';
                                                
       BEGIN        
       
           EXECUTE IMMEDIATE QSTR
           INTO RESULT
           USING P_ITEM;
       
       EXCEPTION 
       
          WHEN NO_DATA_FOUND THEN
              RESULT:= '-';
              
           WHEN OTHERS THEN
              RESULT:= '#';
           
       END;
                   
   RETURN(RESULT);
 
 END;
/

http://docs.oracle.com/cd/B10500_01/appdev.920/a96590/adg09dyn.htm

This entry was posted in Database, Oracle. Bookmark the permalink.