我需要获取以下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对象?
我有下表
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行?
我运行以下查询来估计从内存读取的索引页(缓冲区命中)与从磁盘读取的索引页的比率
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 ×2
execute ×1
firebird ×1
json ×1
nested ×1
performance ×1
procedure ×1
resultset ×1
suspend ×1