Sim sr : com Absoluta Certeza já existe um objeto chamado JSON_VALUE , criado
de OUTRA maneira pelo Oracle : se vc olhar a documentação Oracle do 12c em
https://docs.oracle.com/database/121/SQLRF/functions093.htm#SQLRF56668 vc JÁ
VAI VER que no 12c já foi introduzida uma FUNÇÃO INTERNA com esse nome....
Então SIM, concordo com sua análise : lá na época do 11g alguém construiu um
código CUSTOMIZADO, com objetos CUSTOMIZADOS para simular as funções JSON que o
Oracle 11 não tinha E não tem, agora por Casualidade no 19c algum/alguns
desse(s) construtos e códigos CUSTOMIZADOS estão conflitando com o
código/construtos JSON built-in da Oracle.... E sendo customizado NÂO TEM COMO
as tools de migração da Oracle fazerem qquer conversão automáticamente para vc,
código CUSTOMIZADO é por definição código DE USUÁRIO, Não-Oracle.....
Suas duas alternativas então são :
1. RENOMEAR / reconstruir os objetos E códigos da solução JSON customizada aí
presente para que NÃO CONFLITEM com o que o banco 12c em diante (e 19c
inclusive, óbvio) já trazem
OU
2. recodificar a aplicação para que passe a usar os NOVOS objetos E as novas
built-in JSON do Oracle, ao invés de querer implementar o código customizado
antigo que simulava os objetos/códigos JSON
okdoc ?? OU SEJA, de qquer forma vc VAI TER QUE levantar quem e de que forma
criou a solução JSON customizada aí no 11g E DEPOIS analisar se é mais fácil
(em termos de esforço) adaptar nomes e objetos dela OU a alterar para usar os
built-ins Oracle..... É uma tarefa LOCAL que ninguém pode fazer por você : no
máximo, SE os desenvolvedores da solução json 11g optaram por re-usar um código
publicamente disponível (como https://sourceforge.net/p/pljson/wiki/Home/ , por
exemplo) TALVEZ algum desenvolvedor que já usava o mesmo código público possa
te dar umas dicas mais, MAS se na verdade os devs optaram por criar código
PRÓPRIO para simular o JSON em 11g aí só ELES é que podem alterar isso....
Abraços,
José Laurindo Chiappa
Em sábado, 16 de maio de 2020 01:50:47 BRT, Tiago de Assis Pimenta
[email protected] [oracle_br] <[email protected]> escreveu:
#yiv6385919433 #yiv6385919433 -- #yiv6385919433
.yiv6385919433ygrp-photo-title{clear:both;font-size:smaller;min-height:15px;overflow:hidden;text-align:center;width:75px;}#yiv6385919433
div.yiv6385919433ygrp-photo{background-position:center;background-repeat:no-repeat;background-color:white;border:1px
solid black;min-height:62px;width:62px;}#yiv6385919433
div.yiv6385919433photo-title a, #yiv6385919433 div.yiv6385919433photo-title
a:active, #yiv6385919433 div.yiv6385919433photo-title a:hover, #yiv6385919433
div.yiv6385919433photo-title a:visited {text-decoration:none;}#yiv6385919433
div.yiv6385919433attach-table div.yiv6385919433attach-row
{clear:both;}#yiv6385919433 div.yiv6385919433attach-table
div.yiv6385919433attach-row div {float:left;}#yiv6385919433 p
{clear:both;padding:15px 0 3px 0;overflow:hidden;}#yiv6385919433
div.yiv6385919433ygrp-file {width:30px;}#yiv6385919433
div.yiv6385919433attach-table div.yiv6385919433attach-row div div a
{text-decoration:none;}#yiv6385919433 div.yiv6385919433attach-table
div.yiv6385919433attach-row div div span {font-weight:normal;}#yiv6385919433
div.yiv6385919433ygrp-file-title {font-weight:bold;}#yiv6385919433
#yiv6385919433
Chiappa,
JSON, XML e qualquer coisa relacionada, não entendo muito, então se eu falar
alguma besteira, me desculpe.
Pelo que eu entendi até agora, no 11g a empresa criou um "type JSON as object",
e os construtores são:
constructor function json return self as result,constructor function json(str
varchar2) return self as result,constructor function json(str in clob) return
self as result,constructor function json(cast json_value) return self as
result,constructor function json(l in out nocopy json_list) return self as
result Quando abri esse type "JSON", o erro está na linha:
"json_data json_value_array,"
Abrindo o type "JSON_VALUE_ARRAY", o erro está na linha:
"CREATE OR REPLACE TYPE "JSON_VALUE_ARRAY" as table of json_value;"
O erro é:
"Compilation errors for TYPE UMBRELLA.JSON_VALUE_ARRAY
Error: PLS-00488: 'JSON_VALUE' must be a typeLine: 1Text: CREATE OR REPLACE
TYPE "JSON_VALUE_ARRAY" as table of json_value;
Error: PL/SQL: Compilation unit analysis terminatedLine: 1Text: CREATE OR
REPLACE TYPE "JSON_VALUE_ARRAY" as table of json_value;"
Outra pessoa que está me ajudando nessa jornada, me pediu para criar alguns
sinônimos, entre eles, o json_value
"create synonym json_value for pljson_value;"
E não está criando, pelo que eu entendi, pois existe um type já com esse nome,
é isso ??
[ ]s Em sexta-feira, 15 de maio de 2020 19:28:49 BRT, Jose Laurindo Chiappa
[email protected] [oracle_br] <[email protected]> escreveu:
Ah, e outro detalhe importante : como o datatype JSON foi introduzido no 12c
mas sofreu ** várias ** melhorias no 18c e 19c, tenha Certeza de que tudo que
vc fizer é com a ÚLTIMA VERSÃO, mais Atualizada possível, do PL/SQL Developer
OU então (melhor) use o Oracle SQL DEVELOPER 19.x ou o sql*plus 19..x que veio
junbto com o RDBMS Oracle 19c....
Abraços,
Chiappa
Em sexta-feira, 15 de maio de 2020 19:16:32 BRT, Jose Laurindo Chiappa
<[email protected]> escreveu:
Blz ? Então, primeira coisa até onde sei no Oracle 11g ** absolutamente Não
Existia ** um datatype nativo para JSON, vide
https://asktom.oracle.com/pls/apex/asktom.search?tag=converting-json-data-into-oracle-11g
.... Pra começarmos a entender a sua situação, plz nos explique QUAL datatype
vc usou realmente nas tabelas 11g (provavelmente deve ter sido CLOB, já que um
JSON nada mais é do que um texto), e COMO vc fazia a conversão/validação para
JSON (no 11g provavelmente vc devia estar usando as packages do APEX,
imagino)...
Abraços,
Chiappa
Em sexta-feira, 15 de maio de 2020 14:39:44 BRT, Tiago de Assis Pimenta
[email protected] [oracle_br] <[email protected]> escreveu:
Pessoal, boa tarde, tudo bem ???
Na empresa que trabalho, estamos com esse projeto de migrar o database da
versão 11.2.0.4.0 para 19.0.0.0.0, porém, estamos com alguns objetos inválidos,
acredito eu, por causa do type JSON, que no 11 não era nativo e se não me
engano, a partir da versão 12, já é nativo.
Dei uma olhada em alguns docs da Oracle sobre a migração do database, mas
nenhum ainda que eu vi, fala sobre as diferenças entre o JSON do 11g para o 19c
Alguém passou por isso ? Ou que possa me passar o caminho das pedras ?
- Dados do Ambiente -
SO Desenvolvimento: Windows 10 64bitsPL/SQL Developer: 14.0.0.1961 (64 bit)
Banco: Connected to Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0
- Um dos Vários Erros -
Compilation errors for TYPE BODY BASE.JSON
Error: PLS-00103: Encountered the symbol "." when expecting one of the
following:
(
Line: 80
Text: insert_value json_value := nvl(pair_value, json_value.makenull);
Obrigado.
#yiv6385919433 -- #yiv6385919433ygrp-mkp {border:1px solid
#d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv6385919433
#yiv6385919433ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv6385919433
#yiv6385919433ygrp-mkp #yiv6385919433hd
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px
0;}#yiv6385919433 #yiv6385919433ygrp-mkp #yiv6385919433ads
{margin-bottom:10px;}#yiv6385919433 #yiv6385919433ygrp-mkp .yiv6385919433ad
{padding:0 0;}#yiv6385919433 #yiv6385919433ygrp-mkp .yiv6385919433ad p
{margin:0;}#yiv6385919433 #yiv6385919433ygrp-mkp .yiv6385919433ad a
{color:#0000ff;text-decoration:none;}#yiv6385919433 #yiv6385919433ygrp-sponsor
#yiv6385919433ygrp-lc {font-family:Arial;}#yiv6385919433
#yiv6385919433ygrp-sponsor #yiv6385919433ygrp-lc #yiv6385919433hd {margin:10px
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv6385919433
#yiv6385919433ygrp-sponsor #yiv6385919433ygrp-lc .yiv6385919433ad
{margin-bottom:10px;padding:0 0;}#yiv6385919433 #yiv6385919433actions
{font-family:Verdana;font-size:11px;padding:10px 0;}#yiv6385919433
#yiv6385919433activity
{background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv6385919433
#yiv6385919433activity span {font-weight:700;}#yiv6385919433
#yiv6385919433activity span:first-child
{text-transform:uppercase;}#yiv6385919433 #yiv6385919433activity span a
{color:#5085b6;text-decoration:none;}#yiv6385919433 #yiv6385919433activity span
span {color:#ff7900;}#yiv6385919433 #yiv6385919433activity span
.yiv6385919433underline {text-decoration:underline;}#yiv6385919433
.yiv6385919433attach
{clear:both;display:table;font-family:Arial;font-size:12px;padding:10px
0;width:400px;}#yiv6385919433 .yiv6385919433attach div a
{text-decoration:none;}#yiv6385919433 .yiv6385919433attach img
{border:none;padding-right:5px;}#yiv6385919433 .yiv6385919433attach label
{display:block;margin-bottom:5px;}#yiv6385919433 .yiv6385919433attach label a
{text-decoration:none;}#yiv6385919433 blockquote {margin:0 0 0
4px;}#yiv6385919433 .yiv6385919433bold
{font-family:Arial;font-size:13px;font-weight:700;}#yiv6385919433
.yiv6385919433bold a {text-decoration:none;}#yiv6385919433 dd.yiv6385919433last
p a {font-family:Verdana;font-weight:700;}#yiv6385919433 dd.yiv6385919433last p
span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv6385919433
dd.yiv6385919433last p span.yiv6385919433yshortcuts
{margin-right:0;}#yiv6385919433 div.yiv6385919433attach-table div div a
{text-decoration:none;}#yiv6385919433 div.yiv6385919433attach-table
{width:400px;}#yiv6385919433 div.yiv6385919433file-title a, #yiv6385919433
div.yiv6385919433file-title a:active, #yiv6385919433
div.yiv6385919433file-title a:hover, #yiv6385919433 div.yiv6385919433file-title
a:visited {text-decoration:none;}#yiv6385919433 div.yiv6385919433photo-title a,
#yiv6385919433 div.yiv6385919433photo-title a:active, #yiv6385919433
div.yiv6385919433photo-title a:hover, #yiv6385919433
div.yiv6385919433photo-title a:visited {text-decoration:none;}#yiv6385919433
div#yiv6385919433ygrp-mlmsg #yiv6385919433ygrp-msg p a
span.yiv6385919433yshortcuts
{font-family:Verdana;font-size:10px;font-weight:normal;}#yiv6385919433
.yiv6385919433green {color:#628c2a;}#yiv6385919433 .yiv6385919433MsoNormal
{margin:0 0 0 0;}#yiv6385919433 o {font-size:0;}#yiv6385919433
#yiv6385919433photos div {float:left;width:72px;}#yiv6385919433
#yiv6385919433photos div div {border:1px solid
#666666;min-height:62px;overflow:hidden;width:62px;}#yiv6385919433
#yiv6385919433photos div label
{color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv6385919433
#yiv6385919433reco-category {font-size:77%;}#yiv6385919433
#yiv6385919433reco-desc {font-size:77%;}#yiv6385919433 .yiv6385919433replbq
{margin:4px;}#yiv6385919433 #yiv6385919433ygrp-actbar div a:first-child
{margin-right:2px;padding-right:5px;}#yiv6385919433 #yiv6385919433ygrp-mlmsg
{font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv6385919433
#yiv6385919433ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv6385919433
#yiv6385919433ygrp-mlmsg select, #yiv6385919433 input, #yiv6385919433 textarea
{font:99% Arial, Helvetica, clean, sans-serif;}#yiv6385919433
#yiv6385919433ygrp-mlmsg pre, #yiv6385919433 code {font:115%
monospace;}#yiv6385919433 #yiv6385919433ygrp-mlmsg *
{line-height:1.22em;}#yiv6385919433 #yiv6385919433ygrp-mlmsg #yiv6385919433logo
{padding-bottom:10px;}#yiv6385919433 #yiv6385919433ygrp-msg p a
{font-family:Verdana;}#yiv6385919433 #yiv6385919433ygrp-msg
p#yiv6385919433attach-count span {color:#1E66AE;font-weight:700;}#yiv6385919433
#yiv6385919433ygrp-reco #yiv6385919433reco-head
{color:#ff7900;font-weight:700;}#yiv6385919433 #yiv6385919433ygrp-reco
{margin-bottom:20px;padding:0px;}#yiv6385919433 #yiv6385919433ygrp-sponsor
#yiv6385919433ov li a {font-size:130%;text-decoration:none;}#yiv6385919433
#yiv6385919433ygrp-sponsor #yiv6385919433ov li
{font-size:77%;list-style-type:square;padding:6px 0;}#yiv6385919433
#yiv6385919433ygrp-sponsor #yiv6385919433ov ul {margin:0;padding:0 0 0
8px;}#yiv6385919433 #yiv6385919433ygrp-text
{font-family:Georgia;}#yiv6385919433 #yiv6385919433ygrp-text p {margin:0 0 1em
0;}#yiv6385919433 #yiv6385919433ygrp-text tt {font-size:120%;}#yiv6385919433
#yiv6385919433ygrp-vital ul li:last-child {border-right:none
!important;}#yiv6385919433