小编Mat*_*irl的帖子

嵌套JSON的build_json_object问题

我需要获取以下JSON对象作为输出:

"{"table" : "test", "column 1" : {"pos" : 1, "name" : "col1", "type" : "integer"}, 
"column 2" : {"pos" : 2, "name" : "col2", "type" : "date"}}"
Run Code Online (Sandbox Code Playgroud)

当我使用

build_json_object('table','test', 'column 1', build_json_object('pos',1,'name','col1','type','integer'), 'column 2', build_json_object('pos',2,'name','col2','type','date'));
Run Code Online (Sandbox Code Playgroud)

它引发错误:错误:函数build_json_object(未知,整数,未知,未知,未知,未知)不存在

当我使用

build_json_object('table','test', 'column 1',('pos',1,'name','col1','type','integer'), 'column 2', ('pos',2,'name','col2','type','date'));
Run Code Online (Sandbox Code Playgroud)

它只会产生错误的结果:

"{"table" : "test", "column 1" : {"f1":"pos", "f2": 1, "f3":"name", "f4": "col1", "f5":"type", "f6": "integer"}, 
    "column 2" : {"f1":"pos", "f2": 2, "f3":"name", "f4": "col2", "f5":"type", "f6": "date"}}"
Run Code Online (Sandbox Code Playgroud)

如何使用build_json_object函数生成嵌套的JSON对象?

postgresql json nested

5
推荐指数
1
解决办法
1076
查看次数

如何在Firebird中执行返回结果集的过程

我有下表

create table LIST_PIPE_TABLE
(
  ID INT,
  ITEM          VARCHAR(4000),
  IS_FOLDER     VARCHAR(10)
)
Run Code Online (Sandbox Code Playgroud)

有3行数据

insert into LIST_PIPE_TABLE values(1,'Victorias Secret','true')
insert into LIST_PIPE_TABLE values(2,'Porsche','true')
insert into LIST_PIPE_TABLE values(3,'Babbolat','false')
Run Code Online (Sandbox Code Playgroud)

还有一个应该返回结果集的存储过程

CREATE or alter PROCEDURE LIST_PIPE
RETURNS 
(   col1 varchar(4000),
    col2 varchar(10)
)
  AS  
begin
    FOR SELECT ITEM AS ITEM
       ,IS_FOLDER AS IS_FOLDER
      FROM LIST_PIPE_TABLE 
    into :col1, :col2
    do begin       
            suspend;          
     end 
end
Run Code Online (Sandbox Code Playgroud)

当我尝试使用以下语句执行它时

execute procedure LIST_PIPE
Run Code Online (Sandbox Code Playgroud)

返回唯一的一行

COL1              COL2
Victorias Secret  true
Run Code Online (Sandbox Code Playgroud)

请告知它有什么问题.我应该如何执行它以查看它旨在返回的所有3行?

firebird procedure resultset suspend execute

2
推荐指数
1
解决办法
5254
查看次数

Postgresql 性能 - 索引页点击率

我运行以下查询来估计从内存读取的索引页(缓冲区命中)与从磁盘读取的索引页的比率

select
    t.schemaname, 
    t.relname as "Table Name", 
    io_i.indexrelname as "Index Name", 
    case when (io_i.idx_blks_hit <> 0 or io_i.idx_blks_read <> 0) then 
    round(io_i.idx_blks_hit/(io_i.idx_blks_hit::numeric + 
    io_i.idx_blks_read::numeric), 4) else null end as "Index Hit Ratio" 
from 
    pg_stat_user_tables t
    join pg_statio_user_indexes io_i on io_i.relid = t.relid 
order by "Index Hit Ratio" desc;
Run Code Online (Sandbox Code Playgroud)

我有几个指数,这个比率太低(低于 0.7)。请告知可能的原因以及如何改进。

postgresql performance database-tuning database-indexes

1
推荐指数
1
解决办法
2332
查看次数