{"id":1229,"date":"2026-06-23T18:21:50","date_gmt":"2026-06-23T21:21:50","guid":{"rendered":"https:\/\/jrtx.com.br\/blog\/2026\/06\/23\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\/"},"modified":"2026-06-23T18:21:50","modified_gmt":"2026-06-23T21:21:50","slug":"aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle","status":"publish","type":"post","link":"https:\/\/jrtx.com.br\/blog\/2026\/06\/23\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\/","title":{"rendered":"Aula 14: Sequences e Synonyms \u2014 gerando IDs e aliases no Oracle"},"content":{"rendered":"<p>Bem-vindo \u00e0 Aula 14 do curso <strong>Oracle SQL \u2014 Do Zero ao Avan\u00e7ado<\/strong>. Hoje, ter\u00e7a-feira, 23 de junho de 2026, mergulhamos em um territ\u00f3rio intermedi\u00e1rio que separa os desenvolvedores que apenas consomem bancos de dados daqueles que verdadeiramente dominam a arquitetura de dados: <strong>Sequences e Synonyms<\/strong>. Se voc\u00ea j\u00e1 trabalhou com tabelas e constraints, sabe que a integridade dos dados depende de identificadores \u00fanicos e consistentes. Nesta aula, voc\u00ea vai aprender a criar geradores autom\u00e1ticos de IDs com sequences e a simplificar o acesso a objetos com synonyms, dois recursos que, combinados, formam a espinha dorsal de aplica\u00e7\u00f5es Oracle escal\u00e1veis e de f\u00e1cil manuten\u00e7\u00e3o.<\/p>\n<p>Sequences s\u00e3o objetos independentes de tabela projetados para gerar n\u00fameros sequenciais de forma r\u00e1pida e com controle refinado sobre intervalos, cache e comportamento c\u00edclico. Synonyms, por sua vez, s\u00e3o apelidos \u2014 aliases l\u00f3gicos \u2014 que permitem referenciar objetos de banco sem expor o schema propriet\u00e1rio, facilitando migra\u00e7\u00f5es, modulariza\u00e7\u00e3o e seguran\u00e7a. Em nossos projetos na JRT Technology Solutions, utilizamos diariamente sequences para primary keys de tabelas com milh\u00f5es de registros e synonyms para isolar ambientes de desenvolvimento, homologa\u00e7\u00e3o e produ\u00e7\u00e3o sem alterar uma linha de c\u00f3digo PL\/SQL.<\/p>\n<p>Ao final desta aula, voc\u00ea ser\u00e1 capaz de criar sequences com par\u00e2metros avan\u00e7ados como <strong>CACHE<\/strong>, <strong>NOCACHE<\/strong>, <strong>ORDER<\/strong> e <strong>CYCLE<\/strong>; manipular o estado da sequence com <strong>ALTER SEQUENCE<\/strong>; consumir valores com <strong>NEXTVAL<\/strong> e <strong>CURRVAL<\/strong> em m\u00faltiplas sess\u00f5es; e criar <strong>synonyms p\u00fablicos e privados<\/strong> que abstraem a localiza\u00e7\u00e3o f\u00edsica dos objetos. Tudo isso com exemplos pr\u00e1ticos execut\u00e1veis que voc\u00ea pode reproduzir no seu ambiente. Vamos direto ao ponto.<\/p>\n<h3>O que voc\u00ea vai aprender nesta aula<\/h3>\n<ul>\n<li>Compreender o ciclo de vida de uma <strong>sequence<\/strong> e sua independ\u00eancia de transa\u00e7\u00f5es<\/li>\n<li>Criar sequences com <code>CREATE SEQUENCE<\/code> e todos os seus par\u00e2metros relevantes<\/li>\n<li>Utilizar <code>NEXTVAL<\/code> e <code>CURRVAL<\/code> em instru\u00e7\u00f5es <code>INSERT<\/code>, <code>UPDATE<\/code> e subconsultas<\/li>\n<li>Alterar e reiniciar sequences sem recri\u00e1-las<\/li>\n<li>Diferenciar <strong>synonyms p\u00fablicos<\/strong> de <strong>synonyms privados<\/strong><\/li>\n<li>Criar, utilizar e remover synonyms com <code>CREATE SYNONYM<\/code>, <code>DROP SYNONYM<\/code><\/li>\n<li>Combinar sequences e synonyms em arquiteturas multischema<\/li>\n<li>Diagnosticar os erros mais frequentes ao trabalhar com esses objetos<\/li>\n<\/ul>\n<h3>Pr\u00e9-requisitos e Ambiente<\/h3>\n<p>Para executar todos os exemplos desta aula, voc\u00ea precisa de um banco de dados Oracle 19c ou superior acess\u00edvel com privil\u00e9gios de <code>CREATE SEQUENCE<\/code>, <code>CREATE ANY SYNONYM<\/code> (ou <code>CREATE SYNONYM<\/code>) e <code>CREATE TABLE<\/code>. O schema de exemplo pode ser o cl\u00e1ssico <strong>HR<\/strong> ou um schema pr\u00f3prio. Usaremos o SQL*Plus ou SQL Developer \u2014 ambos funcionam perfeitamente. Se voc\u00ea concluiu a Aula 13 sobre \u00edndices e constraints, j\u00e1 tem as tabelas necess\u00e1rias e o ambiente configurado. Caso contr\u00e1rio, criaremos uma tabela simples <code>tb_pedidos<\/code> para demonstrar o uso de sequences como geradores de chave prim\u00e1ria.<\/p>\n<p>Antes de iniciar, conecte-se com um usu\u00e1rio que tenha os privil\u00e9gios adequados. Se estiver utilizando o Oracle XE ou uma inst\u00e2ncia local, o usu\u00e1rio <strong>SYS<\/strong> ou <strong>SYSTEM<\/strong> pode conceder as permiss\u00f5es necess\u00e1rias. Em ambientes corporativos como os que gerenciamos na JRT Technology Solutions, as sequences e synonyms s\u00e3o criados por DBAs ou desenvolvedores seniores com grants expl\u00edcitos \u2014 recomendo que voc\u00ea pratique em um ambiente de desenvolvimento isolado.<\/p>\n<pre><code>\n-- Concedendo privil\u00e9gios b\u00e1sicos para o schema de exemplo (execute como DBA)\nGRANT CREATE SEQUENCE, CREATE SYNONYM, CREATE TABLE TO meu_usuario;\n-- Para criar synonyms p\u00fablicos, \u00e9 necess\u00e1rio privil\u00e9gio adicional\nGRANT CREATE PUBLIC SYNONYM TO meu_usuario;\n<\/code><\/pre>\n<h3>O que s\u00e3o Sequences e Synonyms no Oracle Database<\/h3>\n<p>Uma <strong>sequence<\/strong> \u00e9 um objeto de banco de dados cuja \u00fanica finalidade \u00e9 gerar uma s\u00e9rie num\u00e9rica de acordo com especifica\u00e7\u00f5es definidas no momento de sua cria\u00e7\u00e3o. Diferente de colunas <code>IDENTITY<\/code> (introduzidas no Oracle 12c), sequences s\u00e3o completamente independentes de tabelas: voc\u00ea pode usar a mesma sequence para alimentar diversas tabelas ou at\u00e9 mesmo para qualquer l\u00f3gica de neg\u00f3cio que exija n\u00fameros \u00fanicos. Sequences s\u00e3o globais dentro do schema e seus valores s\u00e3o cacheados em mem\u00f3ria (SGA) para m\u00e1xima performance, o que significa que uma chamada a <code>NEXTVAL<\/code> raramente precisa acessar o dicion\u00e1rio de dados.<\/p>\n<p>Um <strong>synonym<\/strong> \u00e9 essencialmente um apelido l\u00f3gico que aponta para um objeto real \u2014 tabela, view, sequence, procedure, entre outros. Synonyms n\u00e3o armazenam dados nem c\u00f3digo; s\u00e3o ponteiros que resolvem a refer\u00eancia em tempo de execu\u00e7\u00e3o. Existem dois tipos: <strong>privados<\/strong>, que pertencem a um schema espec\u00edfico e s\u00e3o vis\u00edveis apenas para ele (e para quem receber grants), e <strong>p\u00fablicos<\/strong>, que s\u00e3o vis\u00edveis para todos os usu\u00e1rios do banco. Em nossa experi\u00eancia na JRT Technology Solutions, synonyms p\u00fablicos s\u00e3o frequentemente usados para expor tabelas de cat\u00e1logo ou APIs de sistemas legados sem obrigar os desenvolvedores a qualificar o schema em cada consulta.<\/p>\n<table border=\"1\" cellpadding=\"8\" cellspacing=\"0\" style=\"width:100%; border-collapse:collapse; margin:20px 0;\">\n<caption><strong>Tabela 1 \u2014 Comparativo entre Sequences e Synonyms<\/strong><\/caption>\n<thead>\n<tr style=\"background-color:#f2f2f2;\">\n<th>Caracter\u00edstica<\/th>\n<th>Sequence<\/th>\n<th>Synonym<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Prop\u00f3sito<\/td>\n<td>Gerar n\u00fameros sequenciais \u00fanicos<\/td>\n<td>Criar alias para objetos existentes<\/td>\n<\/tr>\n<tr>\n<td>Armazenamento<\/td>\n<td>Metadados no dicion\u00e1rio + cache em SGA<\/td>\n<td>Apenas metadados no dicion\u00e1rio<\/td>\n<\/tr>\n<tr>\n<td>Persist\u00eancia de valor<\/td>\n<td>Sim, mant\u00e9m estado do \u00faltimo n\u00famero gerado<\/td>\n<td>N\u00e3o armazena valores, apenas aponta<\/td>\n<\/tr>\n<tr>\n<td>Escopo<\/td>\n<td>Schema-level<\/td>\n<td>Schema-level (privado) ou banco inteiro (p\u00fablico)<\/td>\n<\/tr>\n<tr>\n<td>Uso t\u00edpico<\/td>\n<td>Primary keys, n\u00fameros de protocolo, IDs<\/td>\n<td>Acesso transparente a objetos de outro schema<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Criando e Utilizando Sequences \u2014 do b\u00e1sico ao avan\u00e7ado<\/h3>\n<p>A senten\u00e7a <code>CREATE SEQUENCE<\/code> \u00e9 surpreendentemente rica em par\u00e2metros. Vamos come\u00e7ar com um exemplo minimalista e evoluir at\u00e9 configura\u00e7\u00f5es complexas. Para esta aula, criaremos uma tabela de pedidos que ser\u00e1 populada com uma sequence como gerador de chave prim\u00e1ria.<\/p>\n<pre><code>\n-- Criando a tabela de exemplo\nCREATE TABLE tb_pedidos (\n    pedido_id       NUMBER(12)   PRIMARY KEY,\n    cliente_cod     NUMBER(8)    NOT NULL,\n    data_pedido     DATE         DEFAULT SYSDATE,\n    valor_total     NUMBER(10,2) CHECK (valor_total > 0)\n);\n\n-- Sequence b\u00e1sica: inicia em 1, incrementa de 1 em 1, sem limite m\u00e1ximo\nCREATE SEQUENCE seq_pedido_id;\n<\/code><\/pre>\n<p>O comando acima cria uma sequence chamada <strong>seq_pedido_id<\/strong> com todos os valores padr\u00e3o: <code>START WITH 1<\/code>, <code>INCREMENT BY 1<\/code>, <code>MAXVALUE 999999999999999999999999999<\/code> (10^28 &#8211; 1), sem ciclo, com cache de 20 valores e <code>NOORDER<\/code>. Agora vamos consumir os valores gerados pela sequence em instru\u00e7\u00f5es <code>INSERT<\/code>.<\/p>\n<pre><code>\n-- Inserindo registros usando a sequence\nINSERT INTO tb_pedidos (pedido_id, cliente_cod, valor_total)\nVALUES (seq_pedido_id.NEXTVAL, 101, 1500.00);\n\nINSERT INTO tb_pedidos (pedido_id, cliente_cod, valor_total)\nVALUES (seq_pedido_id.NEXTVAL, 102, 2300.50);\n\n-- Consultando o \u00faltimo valor gerado pela sequence na sess\u00e3o atual\nSELECT seq_pedido_id.CURRVAL AS ultimo_valor FROM DUAL;\n<\/code><\/pre>\n<pre><code class=\"output\">\nULTIMO_VALOR\n------------\n           2\n<\/code><\/pre>\n<p>Observe o comportamento de <strong>NEXTVAL<\/strong> e <strong>CURRVAL<\/strong>: <code>NEXTVAL<\/code> avan\u00e7a a sequence e retorna o novo valor; <code>CURRVAL<\/code> retorna o \u00faltimo valor obtido por <code>NEXTVAL<\/code> <em>na sess\u00e3o atual<\/em>, sem avan\u00e7ar o contador. Tentar acessar <code>CURRVAL<\/code> antes de qualquer <code>NEXTVAL<\/code> na sess\u00e3o resulta no erro <code>ORA-08002: sequence seq_pedido_id.CURRVAL is not yet defined in this session<\/code>. Isso \u00e9 intencional: cada sess\u00e3o mant\u00e9m seu pr\u00f3prio ponteiro de <code>CURRVAL<\/code>.<\/p>\n<h3>Par\u00e2metros Avan\u00e7ados de Sequences \u2014 controle refinado<\/h3>\n<p>Agora que voc\u00ea entendeu a opera\u00e7\u00e3o b\u00e1sica, vamos explorar os par\u00e2metros que tornam uma sequence adequada para cen\u00e1rios empresariais. A Tabela 2 resume todos os par\u00e2metros dispon\u00edveis no <code>CREATE SEQUENCE<\/code> do Oracle 19c.<\/p>\n<table border=\"1\" cellpadding=\"8\" cellspacing=\"0\" style=\"width:100%; border-collapse:collapse; margin:20px 0;\">\n<caption><strong>Tabela 2 \u2014 Par\u00e2metros do CREATE SEQUENCE<\/strong><\/caption>\n<thead>\n<tr style=\"background-color:#f2f2f2;\">\n<th>Par\u00e2metro<\/th>\n<th>Descri\u00e7\u00e3o<\/th>\n<th>Valor Padr\u00e3o<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>START WITH<\/strong><\/td>\n<td>Valor inicial da sequence<\/td>\n<td>1 (se MINVALUE for omitido)<\/td>\n<\/tr>\n<tr>\n<td><strong>INCREMENT BY<\/strong><\/td>\n<td>Intervalo entre valores consecutivos (pode ser negativo)<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td><strong>MAXVALUE<\/strong><\/td>\n<td>Valor m\u00e1ximo que a sequence pode atingir<\/td>\n<td>10^28 &#8211; 1<\/td>\n<\/tr>\n<tr>\n<td><strong>MINVALUE<\/strong><\/td>\n<td>Valor m\u00ednimo (para sequences decrescentes ou com ciclo)<\/td>\n<td>1 (ou -10^27 para sequences decrescentes)<\/td>\n<\/tr>\n<tr>\n<td><strong>CYCLE<\/strong> | <strong>NOCYCLE<\/strong><\/td>\n<td>Se deve reiniciar ao atingir MAXVALUE (CYCLE) ou lan\u00e7ar erro (NOCYCLE)<\/td>\n<td>NOCYCLE<\/td>\n<\/tr>\n<tr>\n<td><strong>CACHE<\/strong> | <strong>NOCACHE<\/strong><\/td>\n<td>Quantos valores s\u00e3o pr\u00e9-alocados em mem\u00f3ria. Padr\u00e3o 20; NOCACHE = 0<\/td>\n<td>20<\/td>\n<\/tr>\n<tr>\n<td><strong>ORDER<\/strong> | <strong>NOORDER<\/strong><\/td>\n<td>Garante que os n\u00fameros sejam gerados na ordem das requisi\u00e7\u00f5es (ORDER) ou n\u00e3o (NOORDER)<\/td>\n<td>NOORDER<\/td>\n<\/tr>\n<tr>\n<td><strong>SCALE<\/strong> | <strong>NOSCALE<\/strong><\/td>\n<td>Oracle 18c+: dimensiona a sequence para evitar hotspots em RAC (EXTEND, EXTEND NOORDER)<\/td>\n<td>NOSCALE<\/td>\n<\/tr>\n<tr>\n<td><strong>SHARD<\/strong> | <strong>NOSHARD<\/strong><\/td>\n<td>Oracle 18c+: para ambientes sharded database<\/td>\n<td>NOSHARD<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Vamos criar uma sequence mais sofisticada para um sistema de protocolo anual que utiliza incremento de 10 e faz ciclo ap\u00f3s o fim do ano, reiniciando com o n\u00famero 1000.<\/p>\n<pre><code>\n-- Sequence com ciclo, incremento de 10, cache de 50 e ordena\u00e7\u00e3o\nCREATE SEQUENCE seq_protocolo_anual\n    START WITH     1000\n    INCREMENT BY   10\n    MAXVALUE       9990\n    MINVALUE       1000\n    CYCLE\n    CACHE          50\n    ORDER;\n<\/code><\/pre>\n<p>Os par\u00e2metros foram escolhidos com o seguinte racional: o protocolo come\u00e7a em 1000 e vai at\u00e9 9990 porque estamos usando incrementos de 10, garantindo n\u00fameros como 1000, 1010, 1020, etc. <strong>CYCLE<\/strong> permite que, quando a sequence atingir 9990, o pr\u00f3ximo <code>NEXTVAL<\/code> retorne 1000 novamente \u2014 \u00fatil em sistemas com limite num\u00e9rico superior definido por regra de neg\u00f3cio. O <strong>CACHE 50<\/strong> otimiza a performance ao pr\u00e9-alocar 50 valores na SGA a cada chamada ao dicion\u00e1rio. O <strong>ORDER<\/strong> garante sequencialidade estrita mesmo em ambiente RAC, com pequeno custo de performance.<\/p>\n<p>Em cen\u00e1rios de alta concorr\u00eancia, como os que enfrentamos em aplica\u00e7\u00f5es de e-commerce na JRT Technology Solutions, o cache \u00e9 um aliado cr\u00edtico. Sem cache, cada <code>NEXTVAL<\/code> provoca um acesso ao dicion\u00e1rio de dados e uma grava\u00e7\u00e3o no redo log \u2014 um gargalo insustent\u00e1vel quando milhares de transa\u00e7\u00f5es por segundo demandam novos IDs. Por outro lado, o cache implica que, em caso de crash da inst\u00e2ncia, os valores cacheados e ainda n\u00e3o utilizados s\u00e3o perdidos, criando &#8220;buracos&#8221; na sequ\u00eancia. Isso \u00e9 aceit\u00e1vel para 99% dos casos de uso, pois IDs s\u00e3o identificadores surrogados, sem significado de neg\u00f3cio atrelado \u00e0 continuidade.<\/p>\n<h3>Gerenciando Sequences \u2014 ALTER, DROP, REIN\u00cdCIO e visualiza\u00e7\u00e3o no dicion\u00e1rio<\/h3>\n<p>Sequences n\u00e3o s\u00e3o imut\u00e1veis. O comando <code>ALTER SEQUENCE<\/code> permite modificar quase todos os par\u00e2metros \u2014 exceto <code>START WITH<\/code>. Para alterar o valor inicial, voc\u00ea precisa dropar e recriar a sequence, ou usar um truque com altera\u00e7\u00e3o tempor\u00e1ria do <code>INCREMENT BY<\/code> que abordaremos a seguir.<\/p>\n<pre><code>\n-- Alterando o cache da sequence para 100 e definindo NOCYCLE\nALTER SEQUENCE seq_protocolo_anual\n    CACHE 100\n    NOCYCLE;\n\n-- Se voc\u00ea precisar reiniciar uma sequence em um novo valor sem recri\u00e1-la:\n-- Etapa 1: Altere INCREMENT BY para a diferen\u00e7a negativa necess\u00e1ria\n-- Exemplo: seq_pedido_id est\u00e1 atualmente em 15; queremos que v\u00e1 para 1000\nALTER SEQUENCE seq_pedido_id INCREMENT BY 985; -- (1000-15) = 985\n-- Etapa 2: Execute NEXTVAL uma vez\nSELECT seq_pedido_id.NEXTVAL FROM DUAL;\n-- Etapa 3: Restaure o incremento original\nALTER SEQUENCE seq_pedido_id INCREMENT BY 1;\n<\/code><\/pre>\n<pre><code class=\"output\">\n   NEXTVAL\n----------\n      1000\n\n-- Sequence alterada.\n-- Sequence alterada.\n<\/code><\/pre>\n<p>Para remover uma sequence que n\u00e3o \u00e9 mais necess\u00e1ria, utilize <code>DROP SEQUENCE<\/code>. O dicion\u00e1rio de dados <code>USER_SEQUENCES<\/code> (ou <code>ALL_SEQUENCES<\/code>, <code>DBA_SEQUENCES<\/code>) cont\u00e9m os metadados de todas as sequences acess\u00edveis. A coluna <code>LAST_NUMBER<\/code> indica o pr\u00f3ximo valor que ser\u00e1 obtido por <code>NEXTVAL<\/code> considerando o cache \u2014 e n\u00e3o o \u00faltimo valor efetivamente usado.<\/p>\n<pre><code>\n-- Consultando informa\u00e7\u00f5es sobre as sequences do schema\nSELECT sequence_name, min_value, max_value, increment_by,\n       cache_size, last_number, cycle_flag, order_flag\nFROM   user_sequences\nWHERE  sequence_name LIKE 'SEQ%'\nORDER BY sequence_name;\n<\/code><\/pre>\n<pre><code class=\"output\">\nSEQUENCE_NAME          MIN_VALUE  MAX_VALUE                INCREMENT_BY CACHE_SIZE LAST_NUMBER CYCLE_FLAG ORDER_FLAG\n---------------------- ---------- ------------------------ ------------ ---------- ----------- ---------- ----------\nSEQ_PEDIDO_ID          1          999999999999999999999999999  1          100        1020        N          N\nSEQ_PROTOCOLO_ANUAL    1000       9990                         10         100        1050        N          Y\n<\/code><\/pre>\n<p>Observe <code>LAST_NUMBER<\/code>: para <strong>seq_pedido_id<\/strong>, ele reflete 1020, o que significa que o Oracle j\u00e1 pr\u00e9-alocou os pr\u00f3ximos 100 valores (cache) a partir da \u00faltima chamada. O valor real pr\u00f3ximo pode ser 1001 ou algo pr\u00f3ximo, dependendo do momento da consulta. Este detalhe \u00e9 crucial ao auditar sequences em produ\u00e7\u00e3o \u2014 na JRT Technology Solutions, sempre checamos <code>LAST_NUMBER<\/code> antes de realizar manuten\u00e7\u00f5es programadas em sequences de miss\u00e3o cr\u00edtica.<\/p>\n<h3>Synonyms \u2014 criando aliases inteligentes para objetos de banco<\/h3>\n<p>Agora que dominamos sequences, vamos explorar o segundo pilar desta aula: <strong>Synonyms<\/strong>. A sintaxe de cria\u00e7\u00e3o \u00e9 extremamente simples, mas o impacto arquitetural \u00e9 profundo. Synonyms permitem que uma aplica\u00e7\u00e3o referencie objetos sem hardcoding do schema propriet\u00e1rio, facilitando migra\u00e7\u00f5es entre ambientes e implementa\u00e7\u00e3o de seguran\u00e7a por camadas.<\/p>\n<p>Existem dois escopos: <strong>synonym privado<\/strong>, que pertence a um schema e s\u00f3 \u00e9 vis\u00edvel para ele (e para quem receber grants), e <strong>synonym p\u00fablico<\/strong>, vis\u00edvel para todos os usu\u00e1rios do banco. Em projetos que gerenciamos na JRT Technology Solutions, adotamos a conven\u00e7\u00e3o de synonyms p\u00fablicos apenas para objetos verdadeiramente compartilhados, como tabelas de dom\u00ednio e APIs centrais; para o restante, synonyms privados com grants seletivos s\u00e3o mais seguros.<\/p>\n<pre><code>\n-- Cen\u00e1rio: o schema VENDAS precisa acessar a tabela tb_pedidos\n-- que est\u00e1 no schema COMPRAS, sem qualificar o schema a cada consulta.\n\n-- Conectado como COMPRAS: criando um synonym privado para a pr\u00f3pria tabela\n-- (\u00fatil para padroniza\u00e7\u00e3o de c\u00f3digo)\nCREATE SYNONYM pedidos FOR tb_pedidos;\n-- Agora COMPRAS pode consultar \"SELECT * FROM pedidos\" sem prefixo.\n\n-- Conectado como VENDAS (ap\u00f3s receber GRANT SELECT ON compras.tb_pedidos):\nCREATE SYNONYM pedidos_vendas FOR compras.tb_pedidos;\n-- A aplica\u00e7\u00e3o em VENDAS usa pedidos_vendas, sem saber onde a tabela reside.\n\n-- Criando um synonym p\u00fablico para uma sequence compartilhada\n-- (exige CREATE PUBLIC SYNONYM)\nCREATE PUBLIC SYNONYM seq_pedido_global FOR compras.seq_pedido_id;\n<\/code><\/pre>\n<p>Synonyms n\u00e3o transferem privil\u00e9gios automaticamente. Para que um usu\u00e1rio utilize um synonym que aponta para uma tabela de outro schema, o usu\u00e1rio precisa ter os grants adequados sobre o objeto alvo. O Oracle resolve o synonym primeiro para o objeto real e, em seguida, verifica os privil\u00e9gios sobre o objeto real \u2014 nunca sobre o synonym em si.<\/p>\n<p>A exclus\u00e3o de synonyms segue a mesma l\u00f3gica: <code>DROP SYNONYM nome_synonym;<\/code> para privados e <code>DROP PUBLIC SYNONYM nome_synonym;<\/code> para p\u00fablicos. Se um objeto alvo for removido (DROP TABLE), o synonym permanece no dicion\u00e1rio como um ponteiro inv\u00e1lido \u2014 estado que voc\u00ea pode verificar consultando a coluna <code>STATUS<\/code> em <code>USER_OBJECTS<\/code>. Synonyms inv\u00e1lidos podem ser recriados (OR REPLACE) sem dropar primeiro, com o comando <code>CREATE OR REPLACE SYNONYM<\/code>.<\/p>\n<h3>Sequences e Synonyms em conjunto \u2014 arquiteturas multischema<\/h3>\n<p>Em sistemas corporativos, \u00e9 comum que uma tabela e sua sequence associada residam em schemas diferentes daquele que a aplica\u00e7\u00e3o utiliza para conex\u00e3o. Imagine um ambiente com tr\u00eas schemas: <strong>APP_DATA<\/strong> (dono das tabelas e sequences), <strong>APP_API<\/strong> (dono de procedures e fun\u00e7\u00f5es) e <strong>APP_USER<\/strong> (schema de conex\u00e3o da aplica\u00e7\u00e3o front-end). A combina\u00e7\u00e3o de synonyms e sequences \u00e9 o que torna essa arquitetura vi\u00e1vel sem que a aplica\u00e7\u00e3o precise saber em qual schema cada objeto reside.<\/p>\n<pre><code>\n-- Schema APP_DATA: criando tabela e sequence\nCREATE TABLE app_data.clientes (\n    cliente_id  NUMBER(10)  PRIMARY KEY,\n    nome        VARCHAR2(100)\n);\n\nCREATE SEQUENCE app_data.seq_cliente_id START WITH 1 INCREMENT BY 1 CACHE 30;\n\n-- Concedendo privil\u00e9gios para APP_API e APP_USER\nGRANT SELECT, INSERT, UPDATE, DELETE ON app_data.clientes TO app_api, app_user;\nGRANT SELECT ON app_data.seq_cliente_id TO app_api, app_user;\n\n-- Schema APP_API: criando synonyms privados para os objetos de APP_DATA\nCREATE SYNONYM app_api.clientes      FOR app_data.clientes;\nCREATE SYNONYM app_api.seq_cliente   FOR app_data.seq_cliente_id;\n\n-- Schema APP_USER: criando synonyms privados com nomes simplificados\nCREATE SYNONYM app_user.clientes     FOR app_data.clientes;\nCREATE SYNONYM app_user.seq_cliente  FOR app_data.seq_cliente_id;\n<\/code><\/pre>\n<p>Com essa configura\u00e7\u00e3o, qualquer desenvolvedor trabalhando no schema <strong>APP_USER<\/strong> pode executar <code>INSERT INTO clientes VALUES (seq_cliente.NEXTVAL, 'Maria Silva')<\/code> sem qualificar o schema real. Quando a aplica\u00e7\u00e3o migra para um ambiente de produ\u00e7\u00e3o com schemas diferentes, basta recriar os synonyms apontando para os novos objetos \u2014 o c\u00f3digo-fonte permanece inalterado. Na JRT Technology Solutions, esta \u00e9 a t\u00e9cnica padr\u00e3o em todos os projetos com mais de 50 tabelas, pois reduz drasticamente o tempo de deploy e o risco de erros de refer\u00eancia.<\/p>\n<h3>Verificando a Instala\u00e7\u00e3o \/ Testando a Configura\u00e7\u00e3o<\/h3>\n<p>Para garantir que tudo est\u00e1 funcionando corretamente, vamos executar uma bateria de verifica\u00e7\u00f5es que cobrem sequences e synonyms em conjunto. Estes passos devem ser executados na sess\u00e3o do seu schema de testes.<\/p>\n<pre><code>\n-- 1. Listar todas as sequences do schema e verificar se est\u00e3o saud\u00e1veis\nSELECT sequence_name, last_number, cache_size, cycle_flag\nFROM   user_sequences\nORDER BY sequence_name;\n\n-- 2. Testar gera\u00e7\u00e3o de valores com NEXTVAL e CURRVAL\nSELECT seq_pedido_id.NEXTVAL AS proximo_id FROM DUAL;\nSELECT seq_pedido_id.CURRVAL AS atual_id  FROM DUAL;\n\n-- 3. Verificar synonyms existentes e seu status\nSELECT synonym_name, table_owner, table_name, db_link\nFROM   user_synonyms\nORDER BY synonym_name;\n\n-- 4. Validar que o synonym aponta para o objeto correto\n-- (tentativa de acesso real \u2014 deve funcionar sem erro)\nSELECT COUNT(*) FROM pedidos;  -- se voc\u00ea criou o synonym pedidos para tb_pedidos\n<\/code><\/pre>\n<pre><code class=\"output\">\nSEQUENCE_NAME          LAST_NUMBER CACHE_SIZE CYCLE_FLAG\n---------------------- ----------- ---------- ----------\nSEQ_PEDIDO_ID          1070       100        N\nSEQ_PROTOCOLO_ANUAL    1100       100        N\n\nPROXIMO_ID\n----------\n      1071\n\nATUAL_ID\n--------\n      1071\n\nSYNONYM_NAME           TABLE_OWNER  TABLE_NAME    DB_LINK\n---------------------- ------------ ------------- ----------\nPEDIDOS                COMPRAS      TB_PEDIDOS\n\n  COUNT(*)\n----------\n         5\n<\/code><\/pre>\n<p>Se todas as sa\u00eddas corresponderem ao esperado \u2014 sequences retornando valores incrementais, synonyms listados com <code>TABLE_OWNER<\/code> correto e consulta via synonym funcionando \u2014 sua configura\u00e7\u00e3o est\u00e1 perfeita. Caso contr\u00e1rio, prossiga para a se\u00e7\u00e3o de erros comuns abaixo.<\/p>\n<h3>Erros Comuns e Como Resolver<\/h3>\n<p>Durante a pr\u00e1tica com sequences e synonyms, alguns erros aparecem com frequ\u00eancia. Abaixo listamos quatro situa\u00e7\u00f5es reais, suas causas, sintomas e solu\u00e7\u00f5es definitivas.<\/p>\n<ul>\n<li>\n    <strong>ORA-08002: sequence NOME.CURRVAL is not yet defined in this session<\/strong><br \/>\n    <em>Causa:<\/em> Tentativa de acessar <code>CURRVAL<\/code> sem antes ter executado <code>NEXTVAL<\/code> na sess\u00e3o atual.<br \/>\n    <em>Sintoma:<\/em> Ocorre logo ap\u00f3s conectar ao banco ou ap\u00f3s reiniciar a sess\u00e3o.<br \/>\n    <em>Solu\u00e7\u00e3o:<\/em> Execute <code>SELECT nome_sequence.NEXTVAL FROM DUAL;<\/code> ao menos uma vez na sess\u00e3o antes de usar <code>CURRVAL<\/code>. Em aplica\u00e7\u00f5es, fa\u00e7a uma chamada inicial de aquecimento na sequence.\n  <\/li>\n<li>\n    <strong>ORA-01775: looping chain of synonyms<\/strong><br \/>\n    <em>Causa:<\/em> Um synonym aponta para outro synonym que, em \u00faltima an\u00e1lise, aponta de volta para o primeiro, criando um ciclo infinito.<br \/>\n    <em>Sintoma:<\/em> Erro ao tentar selecionar do synonym; o Oracle detecta o loop e impede a execu\u00e7\u00e3o.<br \/>\n    <em>Solu\u00e7\u00e3o:<\/em> Verifique a cadeia de synonyms com <code>SELECT * FROM user_synonyms WHERE synonym_name = 'NOME';<\/code> e corrija as refer\u00eancias para que todos apontem diretamente para o objeto final, sem intermedi\u00e1rios c\u00edclicos.\n  <\/li>\n<li>\n    <strong>ORA-00955: name is already used by an existing object<\/strong><br \/>\n    <em>Causa:<\/em> Tentativa de criar um synonym com o mesmo nome de um objeto j\u00e1 existente no schema (tabela, view, etc.).<br \/>\n    <em>Sintoma:<\/em> Falha na execu\u00e7\u00e3o do <code>CREATE SYNONYM<\/code>.<br \/>\n    <em>Solu\u00e7\u00e3o:<\/em> Escolha um nome \u00fanico ou use <code>CREATE OR REPLACE SYNONYM<\/code> se o objeto existente for outro synonym. Se for uma tabela, voc\u00ea precisa dropar a tabela ou renome\u00e1-la antes, pois synonyms n\u00e3o podem sobrescrever objetos reais.\n  <\/li>\n<li>\n    <strong>ORA-04002: sequence NOME exceeds MAXVALUE e NOCYCLE est\u00e1 ativo<\/strong><br \/>\n    <em>Causa:<\/em> A sequence atingiu seu <code>MAXVALUE<\/code> e o par\u00e2metro <code>NOCYCLE<\/code> est\u00e1 em vigor.<br \/>\n    <em>Sintoma:<\/em> Chamadas a <code>NEXTVAL<\/code> falham com esse erro, interrompendo inser\u00e7\u00f5es.<br \/>\n    <em>Solu\u00e7\u00e3o:<\/em> Se a l\u00f3gica de neg\u00f3cio permitir, altere a sequence para <code>CYCLE<\/code> ou eleve o <code>MAXVALUE<\/code> com <code>ALTER SEQUENCE ... MAXVALUE novo_valor;<\/code>. Em sistemas com partitionamento por ID, considere recriar a sequence com um <code>START WITH<\/code> mais alto ap\u00f3s arquivar dados antigos.\n  <\/li>\n<\/ul>\n<p>Al\u00e9m desses, fique atento a <strong>ORA-02289: sequence does not exist<\/strong>, que ocorre quando voc\u00ea referencia uma sequence inexistente ou de outro schema sem o devido synonym ou grant. Verifique <code>USER_SEQUENCES<\/code> e as permiss\u00f5es antes de assumir que a sequence n\u00e3o foi criada.<\/p>\n<h3>Boas Pr\u00e1ticas e Dicas Avan\u00e7adas<\/h3>\n<p>Ao longo de centenas de implementa\u00e7\u00f5es na JRT Technology Solutions, consolidamos um conjunto de boas pr\u00e1ticas que evitam dores de cabe\u00e7a futuras com sequences e synonyms. A primeira e mais importante: <strong>nunca confie que NEXTVAL retornar\u00e1 valores sem gaps<\/strong>. Rollbacks, crashes de inst\u00e2ncia e cache n\u00e3o utilizado causam saltos irrevers\u00edveis \u2014 e isso n\u00e3o \u00e9 um bug, \u00e9 uma caracter\u00edstica de performance. IDs surrogados n\u00e3o devem ter significado de neg\u00f3cio atrelado \u00e0 sequencialidade.<\/p>\n<ul>\n<li>Use <strong>CACHE<\/strong> sempre que poss\u00edvel (o padr\u00e3o 20 \u00e9 razo\u00e1vel; 100 a 1000 para tabelas com alt\u00edssima taxa de inser\u00e7\u00e3o).<\/li>\n<li>Para tabelas particionadas por range de data e que usam sequence como PK, evite <code>CYCLE<\/code> \u2014 o risco de duplica\u00e7\u00e3o de ID ao ciclar \u00e9 real.<\/li>\n<li>Prefira synonyms privados com grants expl\u00edcitos a synonyms p\u00fablicos, a menos que a visibilidade global seja estritamente necess\u00e1ria.<\/li>\n<li>Adote uma conven\u00e7\u00e3o de nomenclatura: sequences prefixadas com <code>SEQ_<\/code> e synonyms sem prefixo, ou alguma varia\u00e7\u00e3o que seu time padronize. Isso evita que algu\u00e9m confunda uma sequence solta com uma coluna ou vari\u00e1vel PL\/SQL.<\/li>\n<li>Em scripts de deploy, coloque a cria\u00e7\u00e3o de synonyms e sequences em arquivos separados de tabelas e \u00edndices. Isso facilita o versionamento e a reexecu\u00e7\u00e3o isolada.<\/li>\n<li>Use <code>ALTER SEQUENCE ... RESTART<\/code> (Oracle 18c+) para reiniciar sequences sem os malabarismos de <code>INCREMENT BY<\/code>. Exemplo: <code>ALTER SEQUENCE seq_pedido_id RESTART;<\/code> reinicia do <code>START WITH<\/code> original, ou <code>RESTART START WITH 5000<\/code> para um valor espec\u00edfico.<\/li>\n<\/ul>\n<p>Outra dica avan\u00e7ada: <strong>sequences escal\u00e1veis<\/strong> (<code>SCALE EXTEND<\/code>) para ambientes RAC com alt\u00edssima conten\u00e7\u00e3o. Quando voc\u00ea especifica <code>SCALE EXTEND<\/code>, o Oracle gera n\u00fameros compostos que incluem o ID da inst\u00e2ncia, eliminando a disputa pelo mesmo cache global. O formato do n\u00famero muda \u2014 por exemplo, <code>1010001<\/code> em vez de <code>1001<\/code> \u2014 e pode exigir adapta\u00e7\u00e3o nas aplica\u00e7\u00f5es, mas o ganho de throughput em RAC \u00e9 substancial.<\/p>\n<h3>Resumo da Aula 14<\/h3>\n<p>Nesta aula densa e pr\u00e1tica, voc\u00ea aprendeu a dominar dois objetos fundamentais do Oracle SQL que, juntos, resolvem os problemas de gera\u00e7\u00e3o autom\u00e1tica de identificadores e de abstra\u00e7\u00e3o de localiza\u00e7\u00e3o f\u00edsica de objetos. Come\u00e7amos com a cria\u00e7\u00e3o de sequences b\u00e1sicas e avan\u00e7adas, explorando cada par\u00e2metro do <code>CREATE SEQUENCE<\/code> e seu impacto em performance e comportamento. Vimos como consumir valores com <code>NEXTVAL<\/code> e <code>CURRVAL<\/code>, como alterar e reiniciar sequences, e como consultar o dicion\u00e1rio de dados para auditoria.<\/p>\n<p>Em seguida, mergulhamos nos synonyms, entendendo a diferen\u00e7a entre tipos p\u00fablicos e privados e como eles permitem que aplica\u00e7\u00f5es transitem entre ambientes sem reescrita de c\u00f3digo. A combina\u00e7\u00e3o de sequences e synonyms em arquiteturas multischema encerrou a parte pr\u00e1tica, demonstrando um padr\u00e3o de projeto que utilizamos diariamente na JRT Technology Solutions para sistemas de m\u00e9dio e grande porte. Por fim, diagnosticamos os erros mais frequentes e consolidamos boas pr\u00e1ticas que v\u00e3o economizar horas de troubleshooting no seu dia a dia como DBA ou desenvolvedor Oracle.<\/p>\n<p><strong>O que voc\u00ea deve levar desta aula:<\/strong> sequences n\u00e3o s\u00e3o apenas contadores; s\u00e3o objetos tun\u00e1veis que impactam diretamente a escalabilidade das suas aplica\u00e7\u00f5es. Synonyms n\u00e3o s\u00e3o meros atalhos; s\u00e3o ferramentas de arquitetura que promovem modularidade e seguran\u00e7a. Ambos merecem o mesmo rigor de projeto que voc\u00ea dedica a tabelas e \u00edndices.<\/p>\n<p>Na pr\u00f3xima aula \u2014 <strong>Aula 15: Vis\u00f5es Materializadas \u2014 acelerando consultas com snapshots no Oracle<\/strong> \u2014 avan\u00e7aremos para um recurso poderoso que combina o melhor das views e das tabelas, com aplica\u00e7\u00f5es em data warehousing e replica\u00e7\u00e3o de dados. Voc\u00ea aprender\u00e1 a criar materialized views com refresh autom\u00e1tico, logs de materialized view e estrat\u00e9gias de tuning para consultas que antes levavam minutos e passar\u00e3o a executar em segundos. At\u00e9 l\u00e1, pratique exaustivamente os conceitos desta aula e nos vemos na pr\u00f3xima ter\u00e7a-feira!<\/p>\n<div style=\"margin:52px 0 40px;padding:36px 28px;background:linear-gradient(135deg,#0f172a 0%,#1a2744 100%);border:2px solid #25D366;border-radius:18px;text-align:center;box-shadow:0 4px 28px rgba(37,211,102,0.18)\">\n<p style=\"margin:0 0 10px;font-size:18px;color:#ffffff;font-weight:700;line-height:1.4\">Quer aprender na pr\u00e1tica com especialistas?<\/p>\n<p style=\"margin:0 0 28px;font-size:15px;color:#94a3b8;font-weight:400;line-height:1.6\">A JRT Technology Solutions oferece treinamentos e implementa\u00e7\u00e3o de Oracle SQL para equipes corporativas.<\/p>\n<p>  <a href=\"https:\/\/api.whatsapp.com\/send\/?phone=5521980606699&#038;text=Ol%C3%A1!%20Tenho%20interesse%20no%20treinamento%20de%20Oracle%20SQL.&#038;type=phone_number&#038;app_absent=0\"\n     target=\"_blank\" rel=\"noopener noreferrer\"\n     style=\"display:inline-flex;align-items:center;gap:12px;background:#25D366;color:#ffffff;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;font-weight:700;padding:15px 32px;border-radius:100px;text-decoration:none;box-shadow:0 4px 16px rgba(37,211,102,0.45);letter-spacing:0.01em\"><br \/>\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"#ffffff\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z\"\/><\/svg><br \/>\n    Falar no WhatsApp<br \/>\n  <\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Aprenda sobre Sequences e Synonyms no Oracle SQL e descubra como gerar IDs e aliases de forma eficiente. Clique e domine o assunto!<\/p>\n","protected":false},"author":1,"featured_media":1228,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"iawp_total_views":0,"footnotes":""},"categories":[75],"tags":[76,2096,2093,2094,2095,2097],"class_list":["post-1229","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-banco-de-dados-oracle","tag-gerando-ids-oracle","tag-oracle-sql","tag-sequences-oracle","tag-synonyms-oracle","tag-tutorial-oracle-sql"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Aprenda sobre Sequences e Synonyms no Oracle SQL e descubra como gerar IDs e aliases de forma eficiente. Clique e domine o assunto!\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Thiago Paes Rodrigues\"\/>\n\t<meta name=\"google-site-verification\" content=\"QKPfpDCzHmzKyfFk5j1KZW3HhROYTPeqwBN5qcJ8qcg\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/jrtx.com.br\/blog\/2026\/06\/23\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_BR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"BLOG - JRT Technology Solutions - Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Aula 14: Sequences e Synonyms \u2014 gerando IDs e aliases no Oracle - BLOG - JRT Technology Solutions\" \/>\n\t\t<meta property=\"og:description\" content=\"Aprenda sobre Sequences e Synonyms no Oracle SQL e descubra como gerar IDs e aliases de forma eficiente. Clique e domine o assunto!\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/jrtx.com.br\/blog\/2026\/06\/23\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"100\" \/>\n\t\t<meta property=\"og:image:height\" content=\"75\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-06-23T21:21:50+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-06-23T21:21:50+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/profile.php?id=61590814880509\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Aula 14: Sequences e Synonyms \u2014 gerando IDs e aliases no Oracle - BLOG - JRT Technology Solutions\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Aprenda sobre Sequences e Synonyms no Oracle SQL e descubra como gerar IDs e aliases de forma eficiente. Clique e domine o assunto!\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/23\\\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\\\/#blogposting\",\"name\":\"Aula 14: Sequences e Synonyms \\u2014 gerando IDs e aliases no Oracle - BLOG - JRT Technology Solutions\",\"headline\":\"Aula 14: Sequences e Synonyms \\u2014 gerando IDs e aliases no Oracle\",\"author\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/ai-image-1782249696775.jpg\",\"width\":1536,\"height\":1024,\"caption\":\"Aula 14: Sequences e Synonyms \\u2014 gerando IDs e aliases no Oracle\"},\"datePublished\":\"2026-06-23T18:21:50-03:00\",\"dateModified\":\"2026-06-23T18:21:50-03:00\",\"inLanguage\":\"pt-BR\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/23\\\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/23\\\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\\\/#webpage\"},\"articleSection\":\"DevOps, banco de dados oracle, gerando ids oracle, oracle sql, sequences oracle, synonyms oracle, tutorial oracle sql\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/23\\\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jrtx.com.br\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/#listItem\",\"name\":\"DevOps\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/#listItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/23\\\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\\\/#listItem\",\"name\":\"Aula 14: Sequences e Synonyms \\u2014 gerando IDs e aliases no Oracle\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/23\\\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\\\/#listItem\",\"position\":3,\"name\":\"Aula 14: Sequences e Synonyms \\u2014 gerando IDs e aliases no Oracle\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/#listItem\",\"name\":\"DevOps\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\",\"name\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"description\":\"Um espa\\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\\u00e1tica e atual. Aqui voc\\u00ea encontra novidades, an\\u00e1lises, tutoriais e reflex\\u00f5es sobre inova\\u00e7\\u00e3o, intelig\\u00eancia artificial, gadgets, programa\\u00e7\\u00e3o e tend\\u00eancias digitais. Nosso objetivo \\u00e9 simplificar o complexo, ajudar voc\\u00ea a se manter atualizado e transformar conhecimento em pr\\u00e1tica no seu dia a dia.\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/\",\"telephone\":\"+552138277513\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/cropped-logo-mini.jpg\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/23\\\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\\\/#organizationLogo\",\"width\":100,\"height\":75},\"image\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/23\\\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/profile.php?id=61590814880509\",\"https:\\\/\\\/www.instagram.com\\\/jrtx.tech\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/\",\"name\":\"Thiago Paes Rodrigues\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/23\\\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cdfdf5f766c59d9c9acab959751c31c3442acd94d4b2927c51d2a0c31b50822?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Thiago Paes Rodrigues\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/23\\\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\\\/#webpage\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/23\\\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\\\/\",\"name\":\"Aula 14: Sequences e Synonyms \\u2014 gerando IDs e aliases no Oracle - BLOG - JRT Technology Solutions\",\"description\":\"Aprenda sobre Sequences e Synonyms no Oracle SQL e descubra como gerar IDs e aliases de forma eficiente. Clique e domine o assunto!\",\"inLanguage\":\"pt-BR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/23\\\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/ai-image-1782249696775.jpg\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/23\\\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\\\/#mainImage\",\"width\":1536,\"height\":1024,\"caption\":\"Aula 14: Sequences e Synonyms \\u2014 gerando IDs e aliases no Oracle\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/06\\\/23\\\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\\\/#mainImage\"},\"datePublished\":\"2026-06-23T18:21:50-03:00\",\"dateModified\":\"2026-06-23T18:21:50-03:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/\",\"name\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"alternateName\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"description\":\"Um espa\\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\\u00e1tica e atual. Aqui voc\\u00ea encontra novidades, an\\u00e1lises, tutoriais e reflex\\u00f5es sobre inova\\u00e7\\u00e3o, intelig\\u00eancia artificial, gadgets, programa\\u00e7\\u00e3o e tend\\u00eancias digitais. Nosso objetivo \\u00e9 simplificar o complexo, ajudar voc\\u00ea a se manter atualizado e transformar conhecimento em pr\\u00e1tica no seu dia a dia.\",\"inLanguage\":\"pt-BR\",\"publisher\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Aula 14: Sequences e Synonyms \u2014 gerando IDs e aliases no Oracle - BLOG - JRT Technology Solutions","description":"Aprenda sobre Sequences e Synonyms no Oracle SQL e descubra como gerar IDs e aliases de forma eficiente. Clique e domine o assunto!","canonical_url":"https:\/\/jrtx.com.br\/blog\/2026\/06\/23\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"QKPfpDCzHmzKyfFk5j1KZW3HhROYTPeqwBN5qcJ8qcg","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/23\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\/#blogposting","name":"Aula 14: Sequences e Synonyms \u2014 gerando IDs e aliases no Oracle - BLOG - JRT Technology Solutions","headline":"Aula 14: Sequences e Synonyms \u2014 gerando IDs e aliases no Oracle","author":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"publisher":{"@id":"https:\/\/jrtx.com.br\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/06\/ai-image-1782249696775.jpg","width":1536,"height":1024,"caption":"Aula 14: Sequences e Synonyms \u2014 gerando IDs e aliases no Oracle"},"datePublished":"2026-06-23T18:21:50-03:00","dateModified":"2026-06-23T18:21:50-03:00","inLanguage":"pt-BR","mainEntityOfPage":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/23\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\/#webpage"},"isPartOf":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/23\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\/#webpage"},"articleSection":"DevOps, banco de dados oracle, gerando ids oracle, oracle sql, sequences oracle, synonyms oracle, tutorial oracle sql"},{"@type":"BreadcrumbList","@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/23\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog#listItem","position":1,"name":"Home","item":"https:\/\/jrtx.com.br\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/devops\/#listItem","name":"DevOps"}},{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/devops\/#listItem","position":2,"name":"DevOps","item":"https:\/\/jrtx.com.br\/blog\/category\/devops\/","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/23\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\/#listItem","name":"Aula 14: Sequences e Synonyms \u2014 gerando IDs e aliases no Oracle"},"previousItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/23\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\/#listItem","position":3,"name":"Aula 14: Sequences e Synonyms \u2014 gerando IDs e aliases no Oracle","previousItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/devops\/#listItem","name":"DevOps"}}]},{"@type":"Organization","@id":"https:\/\/jrtx.com.br\/blog\/#organization","name":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","description":"Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","url":"https:\/\/jrtx.com.br\/blog\/","telephone":"+552138277513","logo":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/23\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\/#organizationLogo","width":100,"height":75},"image":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/23\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\/#organizationLogo"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=61590814880509","https:\/\/www.instagram.com\/jrtx.tech\/"]},{"@type":"Person","@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author","url":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/","name":"Thiago Paes Rodrigues","image":{"@type":"ImageObject","@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/23\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cdfdf5f766c59d9c9acab959751c31c3442acd94d4b2927c51d2a0c31b50822?s=96&d=mm&r=g","width":96,"height":96,"caption":"Thiago Paes Rodrigues"}},{"@type":"WebPage","@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/23\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\/#webpage","url":"https:\/\/jrtx.com.br\/blog\/2026\/06\/23\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\/","name":"Aula 14: Sequences e Synonyms \u2014 gerando IDs e aliases no Oracle - BLOG - JRT Technology Solutions","description":"Aprenda sobre Sequences e Synonyms no Oracle SQL e descubra como gerar IDs e aliases de forma eficiente. Clique e domine o assunto!","inLanguage":"pt-BR","isPartOf":{"@id":"https:\/\/jrtx.com.br\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/23\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\/#breadcrumblist"},"author":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"creator":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/06\/ai-image-1782249696775.jpg","@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/23\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\/#mainImage","width":1536,"height":1024,"caption":"Aula 14: Sequences e Synonyms \u2014 gerando IDs e aliases no Oracle"},"primaryImageOfPage":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/06\/23\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\/#mainImage"},"datePublished":"2026-06-23T18:21:50-03:00","dateModified":"2026-06-23T18:21:50-03:00"},{"@type":"WebSite","@id":"https:\/\/jrtx.com.br\/blog\/#website","url":"https:\/\/jrtx.com.br\/blog\/","name":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","alternateName":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","description":"Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","inLanguage":"pt-BR","publisher":{"@id":"https:\/\/jrtx.com.br\/blog\/#organization"}}]},"og:locale":"pt_BR","og:site_name":"BLOG - JRT Technology Solutions - Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","og:type":"article","og:title":"Aula 14: Sequences e Synonyms \u2014 gerando IDs e aliases no Oracle - BLOG - JRT Technology Solutions","og:description":"Aprenda sobre Sequences e Synonyms no Oracle SQL e descubra como gerar IDs e aliases de forma eficiente. Clique e domine o assunto!","og:url":"https:\/\/jrtx.com.br\/blog\/2026\/06\/23\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\/","og:image":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","og:image:secure_url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","og:image:width":100,"og:image:height":75,"article:published_time":"2026-06-23T21:21:50+00:00","article:modified_time":"2026-06-23T21:21:50+00:00","article:publisher":"https:\/\/www.facebook.com\/profile.php?id=61590814880509","twitter:card":"summary_large_image","twitter:title":"Aula 14: Sequences e Synonyms \u2014 gerando IDs e aliases no Oracle - BLOG - JRT Technology Solutions","twitter:description":"Aprenda sobre Sequences e Synonyms no Oracle SQL e descubra como gerar IDs e aliases de forma eficiente. Clique e domine o assunto!","twitter:image":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg"},"aioseo_meta_data":{"post_id":"1229","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_image_url":null,"twitter_title":null,"twitter_description":null,"schema_type":"default","schema_type_options":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"created":"2026-06-29 20:31:22","updated":"2026-06-29 20:31:22","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtx.com.br\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtx.com.br\/blog\/category\/devops\/\" title=\"DevOps\">DevOps<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tAula 14: Sequences e Synonyms \u2014 gerando IDs e aliases no Oracle\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/jrtx.com.br\/blog"},{"label":"DevOps","link":"https:\/\/jrtx.com.br\/blog\/category\/devops\/"},{"label":"Aula 14: Sequences e Synonyms \u2014 gerando IDs e aliases no Oracle","link":"https:\/\/jrtx.com.br\/blog\/2026\/06\/23\/aula-14-sequences-e-synonyms-gerando-ids-e-aliases-no-oracle\/"}],"_links":{"self":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/1229","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/comments?post=1229"}],"version-history":[{"count":0,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/1229\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media\/1228"}],"wp:attachment":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media?parent=1229"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/categories?post=1229"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/tags?post=1229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}