2016-08-03 8 views
0

Ich habe eine einfache Tabelle (nicht JSON streng). Ich möchte eine einfache Funktion schreiben, die die Mitarbeiter-ID als Parameter akzeptiert und alle Spalten aus der Tabelle zurückgibt, die der ID entspricht. Meine Funktion:Orakel plsql wählen Sie alle Spalte (einzelne Zeile) und als json

CREATE OR REPLACE PACKAGE BODY PKG_TEST AS 

FUNCTION SEARCH_JOINING_INFO(EMP_ID VARCHAR2) RETURN CLOB IS 
    RET TBL_EMP_BASIC_PROFILE%ROWTYPE; 
BEGIN 
    SELECT * INTO RET FROM TBL_EMP_BASIC_PROFILE WHERE TBL_EMP_BASIC_PROFILE.EMP_ID=EMP_ID; 
    --RETURN RET.GETCLOBVAL(); 
END; 

END PKG_TEST; 

Dies funktioniert natürlich überhaupt nicht. Ich möchte eine einzelne Zeile (alle Spalten) auswählen und sie als Zeichenfolge im JSON-Format zurückgeben. zum Beispiel '{"EMP_ID" : "1234", "EMP_NAME" : "ABC"}' wie folgt. Aber ich weiß nicht wie. Außerdem möchte ich 'SELECT *' Format verwenden, weil ich manchmal neue Spalten hinzufügen muss. Wie kann ich es tun? Gibt es einen Weg? Meine Tabellenbeschreibung:

Name     Null  Type   
-------------------- -------- ------------- 
EMP_ID    NOT NULL VARCHAR2(13) 
EMP_NAME      VARCHAR2(50) 
EMP_NAME_BANG     VARCHAR2(150) 
EMP_GENDER     NUMBER(1)  
EMP_CATEGORY     NUMBER(1)  
EMP_OFFICE     NUMBER(7)  
EMP_DESIGNATION    NUMBER(4)  
EMP_DATE_OF_JOINING   DATE   
EMP_GRADE      NUMBER(2)  
EMP_SLAB      NUMBER(2)  
EMP_BASIC      NUMBER(7)  
EMP_PHOTO_UPLOAD    VARCHAR2(500) 
CREATED_ON     DATE   
CREATED_BY     VARCHAR2(10) 
EMP_BIRTH_DATE    DATE   
EMP_EMAIL      VARCHAR2(50) 
EMP_PHONE      VARCHAR2(15) 
EMP_ACCOUNT_NO    VARCHAR2(50) 
EMP_BANK_NAME     VARCHAR2(50) 
EMP_APPOINTMENT_TYPE   NUMBER(1) 

Antwort

0

Es gibt keine Funktion von Oracle zur Verfügung gestellt, können Sie durch den Blog gehen, ORA-00001

Es wird definitiv helfen.