【发布时间】:2016-08-03 14:00:04
【问题描述】:
我有一个简单的表(不是严格的 JSON)。我想编写一个简单的函数,它以员工 id 作为参数,并从表中返回与 id 匹配的所有列。我的功能:
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;
这显然根本行不通。我想选择一行(所有列)并将其作为 json 格式的字符串返回。例如,'{"EMP_ID" : "1234", "EMP_NAME" : "ABC"}' 像这样。但我不知道怎么做。此外,我想使用 ' SELECT * ' 格式,因为有时我可能需要添加新列。我该怎么做?有什么办法吗?
我的表说明:
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)
【问题讨论】: