Доступ к объекту jsonb в postgress вызывает ошибку - PullRequest
1 голос
/ 10 марта 2019

У меня есть таблица с именем «junaid», в которой есть столбец «connections» типа «jsonb».

create table junaid (
   connection jsonb
}  

Значение в столбце «подключения» - это массив объектов.

conections = [{"name":"abc", "age":123},{"name":"xyz", "age":222}]

У меня есть хранимая процедура для доступа к этим значениям.

CREATE OR REPLACE FUNCTION test() RETURNS INTEGER AS $$
DECLARE   
myconnection jsonb;
i jsonb;
BEGIN
    select connections into myconnection from junaid;


    FOR i IN SELECT * FROM jsonb_array_elements(myconnection)
    LOOP
        RAISE NOTICE 'output from space %', i->>’name’;
    END LOOP;
    return 0;
EXCEPTION WHEN others THEN
    return 1;
END;
$$ LANGUAGE plpgsql;

Когда я запускаю сохраненный процесс, я получаю эту ошибку:

столбец "’ name ’" не существует

1 Ответ

0 голосов
/ 10 марта 2019

Вы используете неправильные символы кавычки. Вместо обратных кавычек или тиков вперед или чего-либо еще вы должны использовать символ одинарной кавычки для имени ключа, как вы, кажется, используете для строки формата. То есть это должно быть i->>'name'.

P.S. ТАКАЯ подсветка синтаксиса показывает, что происходит что-то подозрительное ...

...