postgreSQL对json操作:函数json_populate_recordset的参数null::myrowtype如何使用

1. 如何编写postgreSQL的内置函数,像使用系统函数一样使用自定义函数,参见上篇文章【C语言编写postgreSQL动态链接库


2. postgreSQL可以对json数据进行操作,其中json_populate_recordset()函数可以将json数据转化为表,说明文档中该函数参数如下:

其中参数null::myrowtype,是已存在表的表名,调用如下:

select * from json_populate_recordset(null::"poiarray",'[{"distance":"42","direction":"East","tel":"0731-88876770","name":"中南大学北校区出版社","weight":"0.0","typecode":"141105","longitude":"112.932278","address":"麓山南路932 号中南大学","latitude":"28.169033","type":"科教文化服务;传媒机构;出版社","poiid":"B02DB05LP4"},{"distance":"155","direction":"SouthEast","tel":"","name":"中国银行(中南大学支行)","weight":"0.0","typecode":"160104","longitude":"112.932647","address":"中南大学六食堂后侧","latitude":"28.167892","type":"金融保险服务;银行;中国银行","poiid":"B02DB0UM9V"},{"distance":"102","direction":"West","tel":"","name":"矿冶园","weight":"0.0","typecode":"110100","longitude":"112.930803","address":"麓山南路932号中南大学","latitude":"28.169026","type":"风景名胜;公园广场;公园广场","poiid":"B0FFFZ13U8"},{"distance":"196","direction":"SouthWest","tel":"","name":"中南大学北校区商学院","weight":"0.0","typecode":"141201","longitude":"112.93034","address":"麓山南路932号中南大学","latitude":"28.167933","type":"科教文化服务;学校;高等院校","poiid":"B02DB104AT"},{"distance":"126","direction":"SouthWest","tel":"","name":"中南大学北校区地球科学与信息物理学院","weight":"0.0","typecode":"141201","longitude":"112.930726","address":"麓山南路932号中南大学","latitude":"28.168536","type":"科教文化服务;学校;高等院校","poiid":"B02DB107ER"}]');

对于null::"poiarray"参数,表poiarray必须存在,其结构与json数据相对应,即

create table poiarray(
		distance varchar,
		direction  varchar,
		tel  varchar,
		name  varchar,
		weight  varchar,
		typecode  varchar,
		longitude  varchar,
		address  varchar,
		latitude  varchar,
		type varchar,
		poiid varchar
);

执行结果如下

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值