Boa tarde Chiappa, tudo bem ??? Desculpa a demora, mas com esses feriados relâmpagos, ficou tudo mais confuso ainda *rs* Perfeito Chiappa, sobre as tools de migração, existe então ferramentas que, quando os recursos nativos do Oracle, mudam de nome, essas ferramentas ajudam a fazer essa migração ? Não conhecia essa possibilidade.
[ ]s Em segunda-feira, 18 de maio de 2020 11:44:19 BRT, Jose Laurindo Chiappa jlchia...@yahoo.com.br [oracle_br] <oracle_br@yahoogrupos.com.br> escreveu: 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 tiagopime...@ymail.com [oracle_br] <oracle_br@yahoogrupos.com.br> escreveu: 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 jlchia...@yahoo.com.br [oracle_br] <oracle_br@yahoogrupos.com.br> 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 <jlchia...@yahoo.com.br> 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 tiagopime...@ymail.com [oracle_br] <oracle_br@yahoogrupos.com.br> 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. #yiv1427558606 #yiv1427558606 -- #yiv1427558606ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv1427558606 #yiv1427558606ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv1427558606 #yiv1427558606ygrp-mkp #yiv1427558606hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv1427558606 #yiv1427558606ygrp-mkp #yiv1427558606ads {margin-bottom:10px;}#yiv1427558606 #yiv1427558606ygrp-mkp .yiv1427558606ad {padding:0 0;}#yiv1427558606 #yiv1427558606ygrp-mkp .yiv1427558606ad p {margin:0;}#yiv1427558606 #yiv1427558606ygrp-mkp .yiv1427558606ad a {color:#0000ff;text-decoration:none;}#yiv1427558606 #yiv1427558606ygrp-sponsor #yiv1427558606ygrp-lc {font-family:Arial;}#yiv1427558606 #yiv1427558606ygrp-sponsor #yiv1427558606ygrp-lc #yiv1427558606hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv1427558606 #yiv1427558606ygrp-sponsor #yiv1427558606ygrp-lc .yiv1427558606ad {margin-bottom:10px;padding:0 0;}#yiv1427558606 #yiv1427558606actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv1427558606 #yiv1427558606activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv1427558606 #yiv1427558606activity span {font-weight:700;}#yiv1427558606 #yiv1427558606activity span:first-child {text-transform:uppercase;}#yiv1427558606 #yiv1427558606activity span a {color:#5085b6;text-decoration:none;}#yiv1427558606 #yiv1427558606activity span span {color:#ff7900;}#yiv1427558606 #yiv1427558606activity span .yiv1427558606underline {text-decoration:underline;}#yiv1427558606 .yiv1427558606attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv1427558606 .yiv1427558606attach div a {text-decoration:none;}#yiv1427558606 .yiv1427558606attach img {border:none;padding-right:5px;}#yiv1427558606 .yiv1427558606attach label {display:block;margin-bottom:5px;}#yiv1427558606 .yiv1427558606attach label a {text-decoration:none;}#yiv1427558606 blockquote {margin:0 0 0 4px;}#yiv1427558606 .yiv1427558606bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv1427558606 .yiv1427558606bold a {text-decoration:none;}#yiv1427558606 dd.yiv1427558606last p a {font-family:Verdana;font-weight:700;}#yiv1427558606 dd.yiv1427558606last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv1427558606 dd.yiv1427558606last p span.yiv1427558606yshortcuts {margin-right:0;}#yiv1427558606 div.yiv1427558606attach-table div div a {text-decoration:none;}#yiv1427558606 div.yiv1427558606attach-table {width:400px;}#yiv1427558606 div.yiv1427558606file-title a, #yiv1427558606 div.yiv1427558606file-title a:active, #yiv1427558606 div.yiv1427558606file-title a:hover, #yiv1427558606 div.yiv1427558606file-title a:visited {text-decoration:none;}#yiv1427558606 div.yiv1427558606photo-title a, #yiv1427558606 div.yiv1427558606photo-title a:active, #yiv1427558606 div.yiv1427558606photo-title a:hover, #yiv1427558606 div.yiv1427558606photo-title a:visited {text-decoration:none;}#yiv1427558606 div#yiv1427558606ygrp-mlmsg #yiv1427558606ygrp-msg p a span.yiv1427558606yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv1427558606 .yiv1427558606green {color:#628c2a;}#yiv1427558606 .yiv1427558606MsoNormal {margin:0 0 0 0;}#yiv1427558606 o {font-size:0;}#yiv1427558606 #yiv1427558606photos div {float:left;width:72px;}#yiv1427558606 #yiv1427558606photos div div {border:1px solid #666666;min-height:62px;overflow:hidden;width:62px;}#yiv1427558606 #yiv1427558606photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv1427558606 #yiv1427558606reco-category {font-size:77%;}#yiv1427558606 #yiv1427558606reco-desc {font-size:77%;}#yiv1427558606 .yiv1427558606replbq {margin:4px;}#yiv1427558606 #yiv1427558606ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv1427558606 #yiv1427558606ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv1427558606 #yiv1427558606ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv1427558606 #yiv1427558606ygrp-mlmsg select, #yiv1427558606 input, #yiv1427558606 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv1427558606 #yiv1427558606ygrp-mlmsg pre, #yiv1427558606 code {font:115% monospace;}#yiv1427558606 #yiv1427558606ygrp-mlmsg * {line-height:1.22em;}#yiv1427558606 #yiv1427558606ygrp-mlmsg #yiv1427558606logo {padding-bottom:10px;}#yiv1427558606 #yiv1427558606ygrp-msg p a {font-family:Verdana;}#yiv1427558606 #yiv1427558606ygrp-msg p#yiv1427558606attach-count span {color:#1E66AE;font-weight:700;}#yiv1427558606 #yiv1427558606ygrp-reco #yiv1427558606reco-head {color:#ff7900;font-weight:700;}#yiv1427558606 #yiv1427558606ygrp-reco {margin-bottom:20px;padding:0px;}#yiv1427558606 #yiv1427558606ygrp-sponsor #yiv1427558606ov li a {font-size:130%;text-decoration:none;}#yiv1427558606 #yiv1427558606ygrp-sponsor #yiv1427558606ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv1427558606 #yiv1427558606ygrp-sponsor #yiv1427558606ov ul {margin:0;padding:0 0 0 8px;}#yiv1427558606 #yiv1427558606ygrp-text {font-family:Georgia;}#yiv1427558606 #yiv1427558606ygrp-text p {margin:0 0 1em 0;}#yiv1427558606 #yiv1427558606ygrp-text tt {font-size:120%;}#yiv1427558606 #yiv1427558606ygrp-vital ul li:last-child {border-right:none !important;}#yiv1427558606