Я пытаюсь использовать PL/JSON в форме Oracle 11g.Использование PL/JSON в формах оракула 11g
Когда я запускаю следующий код (взятый из примера файла ex1.sql из PL/JSON) непосредственно в базе данных, он отлично работает.
declare
obj json;
begin
obj := json('{"a": true }');
obj.print;
--more complex json:
obj := json('
{
"a": null,
"b": 12.243,
"c": 2e-3,
"d": [true, false, "abdc", [1,2,3]],
"e": [3, {"e2":3}],
"f": {
"f2":true
}
}');
obj.print;
obj.print(false); --compact way
end;
/
возвращение
{
"a" : true
}
{
"a" : null,
"b" : 12.243,
"c" : 0.002,
"d" : [true, false, "abdc", [1, 2, 3]],
"e" : [3, {
"e2" : 3
}],
"f" : {
"f2" : true
}
}
{"a":null,"b":12.243,"c":0.002,"d":[true,false,"abdc",[1,2,3]],"e":[3,{"e2":3}],"f":{"f2":true}}
Теперь я хочу использовать ту же логику, но непосредственно в форме 11g Oracle с помощью следующего кода.
PROCEDURE Ex1_Test IS
obj json;
begin
obj := json('{"a": true }');
:MyField1 := obj.to_char;
--more complex json:
obj := json('
{
"a": null,
"b": 12.243,
"c": 2e-3,
"d": [true, false, "abdc", [1,2,3]],
"e": [3, {"e2":3}],
"f": {
"f2":true
}
}');
:MyField2 := obj.to_char;
:MyField3 := obj.to_char(false); --compact way
end;
Тогда я получаю общую внутреннюю ошибку от Oracle ORA-00600 : internal error code
в строке 7 :MyField1 := obj.to_char;
.
Что я делаю неправильно? Это то, что я пытаюсь сделать, невозможно?
Благодарим за помощь! :)
Возможно, вам лучше сохранить такой код в пакетах PL/SQL на сервере базы данных и вызывать их из форм, а не выполнять этот код в формах Oracle. –
Да, после ответа APC ниже, это то, что я сделал, и он работает нормально. – Mojoe31