2016-04-29 15 views
0

ここでは、json_populate_recordset関数を使用する型を作成しました。サンプルSQLとJSONが使用されている以下のjson_populate_recordset関数を使用したPostgresの問題

CREATE TYPE Visits_type AS 
    (facilityId varchar,patientId varchar,encounterId numeric,patientClass varchar,admnDate varchar,dischargeDate varchar,practitionerId varchar, 
    careLocationType varchar,careLocationCode varchar,specialtyCode varchar,status varchar,admitPractitionerId varchar,hpSeqNo varchar,admissionType varchar,assignedRoom varchar,assignedBed varchar, 
    Firstname varchar, 
    Patientname varchar, 
    Firstnamelocal varchar, 
    Patientnamelocal varchar, 
    sex varchar, 
    Dob varchar, 
    Mobilenumber varchar, 
    Emailid varchar, 
    RegnFacilityid varchar); 

SELECT * from json_populate_recordset(null::Visits_type, '[ 
    { 
    "facilityId": "10","patientId": "GH00000940","encounterId": 100011770001,"patientClass": "OP","admnDate": "2015-05-17 17:25","dischargeDate": null,"practitionerId": "ALLEN","careLocationType": "C","careLocationCode": "CL11","specialtyCode": "SP11", "status": "E", "admitPractitionerId": null, "hpSeqNo": 3796, "admissionType": "First Visit", "assignedRoom": "R1", "assignedBed": null, "firstName": "Suresh", "patientName": "Suresh Machwal", "firstNameLocal": null, "patientNameLocal": null, "sex": "M", "dob": "1970-05-17", "mobileNumber": null, "emailId": null, "regnFacilityId": "GH" }, { 
    "facilityId": "10", 
    "patientId": "GH00000940", 
    "encounterId": 100011770001, 
    "patientClass": "OP", 
    "admnDate": "2015-05-17 17:25", 
    "dischargeDate": null, 
    "practitionerId": "ALLEN", 
    "careLocationType": "C", 
    "careLocationCode": "CL11", 
    "specialtyCode": "SP11", 
    "status": "E", 
    "admitPractitionerId": null, 
    "hpSeqNo": 3795, 
    "admissionType": "First Visit", 
    "assignedRoom": "R1", 
    "assignedBed": null, 
    "firstName": "Suresh", 
    "patientName": "Suresh Machwal", 
    "firstNameLocal": null, 
    "patientNameLocal": null, 
    "sex": "M", 
    "dob": "1970-05-17", 
    "mobileNumber": null, 
    "emailId": null, 
    "regnFacilityId": "GH" 
    }]'); 

問題は、そのその後dobstatussexを除く、すべてのフィールドにnull値を返すということです。

あなたのオリジナルケース保つためにあなたのタイプを作成するときは、二重引用符を使用する必要があります
+0

を..しかしI IN FOR使用は(json_populate_recordset * FROMを選択(null :: visits_type、visit_info - > 'visits')) LOOP ..エラーが発生しました.i.patientIDフィールドは使用できません。私は二重引用符で作成したTYPE visit_typeです –

答えて

1

:私は、クエリを実行するとき、私は実際の値を見ることができます

CREATE TYPE Visits_type AS 
    ("facilityId" varchar, 
    "patientId" varchar, 
    "encounterId" numeric, 
    "patientClass" varchar, 
    "admnDate" varchar, 
    "dischargeDate" varchar, 
    "practitionerId" varchar, 
    "careLocationType" varchar, 
    "careLocationCode" varchar, 
    "specialtyCode" varchar, 
    "status" varchar, 
    "admitPractitionerId" varchar, 
    "hpSeqNo" varchar, 
    "admissionType" varchar, 
    "assignedRoom" varchar, 
    "assignedBed" varchar, 
    "Firstname" varchar, 
    "Patientname" varchar, 
    "Firstnamelocal" varchar, 
    "Patientnamelocal" varchar, 
    "sex" varchar, 
    "Dob" varchar, 
    "Mobilenumber" varchar, 
    "Emailid" varchar, 
    "RegnFacilityid" varchar); 
関連する問題