Sqlcl - Formatando Resultados com SQLFORMAT

 Olá Pessoa, hoje trago um conteúdo que e um verdadeiro canivete suíço quando se trata de exportação de dados ou manipulação de dados. De uma maneira simplificada o Sqlcl suporta a formatação de queries nos formatos mais populares como: CSV, JSON, HML, INSERT, XML e entre outros.

Isso ajuda no momento em que e necessário exportar dados para uma planilha, ou quando e solicitado um extração de dados para serem corrigidos ou conferidos, ou ate para backup em situações específicas.


Dessa forma vou mostrar como configurar e usar os tipos de formatação usando o SET SQLFORMAT para exportar dados nas mais variadas formatações usando o Sqlcl.


1 - Preparação: Vamos criar um tabela EMP e realizar alguns inserts nela:

CREATE TABLE EMP (
  EMPNO NUMBER(4,0), 
  ENAME VARCHAR2(10 BYTE), 
  JOB VARCHAR2(9 BYTE), 
  MGR NUMBER(4,0), 
  HIREDATE DATE, 
  SAL NUMBER(7,2), 
  COMM NUMBER(7,2), 
  DEPTNO NUMBER(2,0), 
  CONSTRAINT PK_EMP PRIMARY KEY (EMPNO)
  );
  
insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7369,'SMITH','CLERK',7902,to_date('17-DEC-80','DD-MON-RR'),800,null,20);
insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7499,'ALLEN','SALESMAN',7698,to_date('20-FEB-81','DD-MON-RR'),1600,300,30);
insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7521,'WARD','SALESMAN',7698,to_date('22-FEB-81','DD-MON-RR'),1250,500,30);
insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7566,'JONES','MANAGER',7839,to_date('02-APR-81','DD-MON-RR'),2975,null,20);
insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7654,'MARTIN','SALESMAN',7698,to_date('28-SEP-81','DD-MON-RR'),1250,1400,30);
insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7698,'BLAKE','MANAGER',7839,to_date('01-MAY-81','DD-MON-RR'),2850,null,30);
insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7782,'CLARK','MANAGER',7839,to_date('09-JUN-81','DD-MON-RR'),2450,null,10);
insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7788,'SCOTT','ANALYST',7566,to_date('19-APR-87','DD-MON-RR'),3000,null,20);
insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7839,'KING','PRESIDENT',null,to_date('17-NOV-81','DD-MON-RR'),5000,null,10);
insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7844,'TURNER','SALESMAN',7698,to_date('08-SEP-81','DD-MON-RR'),1500,0,30);
insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7876,'ADAMS','CLERK',7788,to_date('23-MAY-87','DD-MON-RR'),1100,null,20);
insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7900,'JAMES','CLERK',7698,to_date('03-DEC-81','DD-MON-RR'),950,null,30);
insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7902,'FORD','ANALYST',7566,to_date('03-DEC-81','DD-MON-RR'),3000,null,20);
insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7934,'MILLER','CLERK',7782,to_date('23-JAN-82','DD-MON-RR'),1300,null,10);
commit;


2 - Agora vamos acessar o ambiente usando o Sqlcl e fazer um select simples para confirmar que os dados estão lá:


OBS: Aqui deixo o link do post de como instalar o Sqlcl, configurar, importar conexões e realizar uma conexão:


C:\Users\pedro\AppData\Roaming\MobaXterm\home>sql -name orclpdb @format_prod_pv
NOTE: Picked up JDK_JAVA_OPTIONS: --enable-native-access=ALL-UNNAMED


SQLcl: Release 25.3 Production em dom. abr. 26 17:00:18 2026

Copyright (c) 1982, 2026, Oracle. Todos os direitos reservados.

Conectado a:
Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0

SYS@orclpdb> show con_name
CON_NAME
------------------------------
ORCLPDB
SYS@orclpdb>
SYS@orclpdb> set lines 9999 pages 9999
SYS@orclpdb>
SYS@orclpdb> select * from EMP;

   EMPNO ENAME     JOB              MGR HIREDATE        SAL    COMM    DEPTNO
________ _________ ____________ _______ ___________ _______ _______ _________
    7369 SMITH     CLERK           7902 17/12/80        800                20
    7499 ALLEN     SALESMAN        7698 20/02/81       1600     300        30
    7521 WARD      SALESMAN        7698 22/02/81       1250     500        30
    7566 JONES     MANAGER         7839 02/04/81       2975                20
    7654 MARTIN    SALESMAN        7698 28/09/81       1250    1400        30
    7698 BLAKE     MANAGER         7839 01/05/81       2850                30
    7782 CLARK     MANAGER         7839 09/06/81       2450                10
    7788 SCOTT     ANALYST         7566 19/04/87       3000                20
    7839 KING      PRESIDENT            17/11/81       5000                10
    7844 TURNER    SALESMAN        7698 08/09/81       1500       0        30
    7876 ADAMS     CLERK           7788 23/05/87       1100                20
    7900 JAMES     CLERK           7698 03/12/81        950                30
    7902 FORD      ANALYST         7566 03/12/81       3000                20
    7934 MILLER    CLERK           7782 23/01/82       1300                10

14 linhas selecionadas.

SYS@orclpdb>


Acima, podemos ver que nossa tabela esta populada com 14 registros, agora vamos aos tipos de formação usando o SET SQLFORMAT no Sqlcl.


3- DEFAULT

A formação DEFAULT limpa qualquer outra formação que esteja ativa revertendo o output para o padrão:

SYS@orclpdb> SET SQLFORMAT DEFAULT
Formato SQL Removido
SYS@orclpdb> SELECT * FROM emp WHERE deptno = 20;

     EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17/12/80        800                    20
      7566 JONES      MANAGER         7839 02/04/81       2975                    20
      7788 SCOTT      ANALYST         7566 19/04/87       3000                    20
      7876 ADAMS      CLERK           7788 23/05/87       1100                    20
      7902 FORD       ANALYST         7566 03/12/81       3000                    20

SYS@orclpdb>


4- CSV

O formato CSV produz uma saída padrão de valores separados por vírgula, com valores de texto entre aspas duplas. A primeira linha contém os nomes das colunas.


SYS@orclpdb> SET SQLFORMAT CSV
SYS@orclpdb> SELECT * FROM emp WHERE deptno = 20;
"EMPNO","ENAME","JOB","MGR","HIREDATE","SAL","COMM","DEPTNO"
7369,"SMITH","CLERK",7902,17-DEC-80,800,,20
7566,"JONES","MANAGER",7839,02-APR-81,2975,,20
7788,"SCOTT","ANALYST",7566,19-APR-87,3000,,20
7876,"ADAMS","CLERK",7788,23-MAY-87,1100,,20
7902,"FORD","ANALYST",7566,03-DEC-81,3000,,20

SYS@orclpdb>


5- HTML

O formato HTML produz o HTML para uma tabela responsiva. O conteúdo da tabela se altera dinamicamente para corresponder à string de busca digitada no campo de texto no canto superior esquerdo.

SYS@orclpdb> SET SQLFORMAT XML
SYS@orclpdb> SELECT * FROM emp WHERE deptno = 20;
<?xml version='1.0'  encoding='UTF-8' ?>
<RESULTS>
        <ROW>
                <COLUMN NAME="EMPNO"><![CDATA[7369]]></COLUMN>
                <COLUMN NAME="ENAME"><![CDATA[SMITH]]></COLUMN>
                <COLUMN NAME="JOB"><![CDATA[CLERK]]></COLUMN>
                <COLUMN NAME="MGR"><![CDATA[7902]]></COLUMN>
                <COLUMN NAME="HIREDATE"><![CDATA[17-DEZ-1980 00:00:00]]></COLUMN>
                <COLUMN NAME="SAL"><![CDATA[800]]></COLUMN>
                <COLUMN NAME="COMM"><![CDATA[]]></COLUMN>
                <COLUMN NAME="DEPTNO"><![CDATA[20]]></COLUMN>
        </ROW>
        <ROW>
                <COLUMN NAME="EMPNO"><![CDATA[7566]]></COLUMN>
                <COLUMN NAME="ENAME"><![CDATA[JONES]]></COLUMN>
                <COLUMN NAME="JOB"><![CDATA[MANAGER]]></COLUMN>
                <COLUMN NAME="MGR"><![CDATA[7839]]></COLUMN>
                <COLUMN NAME="HIREDATE"><![CDATA[02-ABR-1981 00:00:00]]></COLUMN>
                <COLUMN NAME="SAL"><![CDATA[2975]]></COLUMN>
                <COLUMN NAME="COMM"><![CDATA[]]></COLUMN>
                <COLUMN NAME="DEPTNO"><![CDATA[20]]></COLUMN>
        </ROW>
        <ROW>
                <COLUMN NAME="EMPNO"><![CDATA[7788]]></COLUMN>
                <COLUMN NAME="ENAME"><![CDATA[SCOTT]]></COLUMN>
                <COLUMN NAME="JOB"><![CDATA[ANALYST]]></COLUMN>
                <COLUMN NAME="MGR"><![CDATA[7566]]></COLUMN>
                <COLUMN NAME="HIREDATE"><![CDATA[19-ABR-1987 00:00:00]]></COLUMN>
                <COLUMN NAME="SAL"><![CDATA[3000]]></COLUMN>
                <COLUMN NAME="COMM"><![CDATA[]]></COLUMN>
                <COLUMN NAME="DEPTNO"><![CDATA[20]]></COLUMN>
        </ROW>
        <ROW>
                <COLUMN NAME="EMPNO"><![CDATA[7876]]></COLUMN>
                <COLUMN NAME="ENAME"><![CDATA[ADAMS]]></COLUMN>
                <COLUMN NAME="JOB"><![CDATA[CLERK]]></COLUMN>
                <COLUMN NAME="MGR"><![CDATA[7788]]></COLUMN>
                <COLUMN NAME="HIREDATE"><![CDATA[23-MAI-1987 00:00:00]]></COLUMN>
                <COLUMN NAME="SAL"><![CDATA[1100]]></COLUMN>
                <COLUMN NAME="COMM"><![CDATA[]]></COLUMN>
                <COLUMN NAME="DEPTNO"><![CDATA[20]]></COLUMN>
        </ROW>
        <ROW>
                <COLUMN NAME="EMPNO"><![CDATA[7902]]></COLUMN>
                <COLUMN NAME="ENAME"><![CDATA[FORD]]></COLUMN>
                <COLUMN NAME="JOB"><![CDATA[ANALYST]]></COLUMN>
                <COLUMN NAME="MGR"><![CDATA[7566]]></COLUMN>
                <COLUMN NAME="HIREDATE"><![CDATA[03-DEZ-1981 00:00:00]]></COLUMN>
                <COLUMN NAME="SAL"><![CDATA[3000]]></COLUMN>
                <COLUMN NAME="COMM"><![CDATA[]]></COLUMN>
                <COLUMN NAME="DEPTNO"><![CDATA[20]]></COLUMN>
        </ROW>
</RESULTS>
5 linhas selecionadas.

SYS@orclpdb>


6- JSON

O formato JSON produz um documento JSON contendo as definições das colunas junto com os dados que elas contêm. A saída é compacta, mas difícil de ler. O formato JSON-FORMATTED formata o JSON de forma legível, tornando-o compreensível para humanos.


  • JSON

SYS@orclpdb> SET SQLFORMAT JSON
SYS@orclpdb> SELECT * FROM emp WHERE deptno = 20;
{"results":[{"columns":[{"name":"EMPNO","type":"NUMBER"},{"name":"ENAME","type":"VARCHAR2"},{"name":"JOB","type":"VARCHAR2"},{"name":"MGR","type":"NUMBER"},{"name":"HIREDATE","type":"DATE"},{"name":"SAL
","type":"NUMBER"},{"name":"COMM","type":"NUMBER"},{"name":"DEPTNO","type":"NUMBER"}],"items":
[
{"empno":7369,"ename":"SMITH","job":"CLERK","mgr":7902,"hiredate":"17-DEZ-1980 00:00:00","sal":800,"deptno":20}
,{"empno":7566,"ename":"JONES","job":"MANAGER","mgr":7839,"hiredate":"02-ABR-1981 00:00:00","sal":2975,"deptno":20}
,{"empno":7788,"ename":"SCOTT","job":"ANALYST","mgr":7566,"hiredate":"19-ABR-1987 00:00:00","sal":3000,"deptno":20}
,{"empno":7876,"ename":"ADAMS","job":"CLERK","mgr":7788,"hiredate":"23-MAI-1987 00:00:00","sal":1100,"deptno":20}
,{"empno":7902,"ename":"FORD","job":"ANALYST","mgr":7566,"hiredate":"03-DEZ-1981 00:00:00","sal":3000,"deptno":20}
]}]}
5 linhas selecionadas.

SYS@orclpdb>

  • JSON-FORMATED

SYS@orclpdb> SET SQLFORMAT JSON-FORMATTED
SYS@orclpdb> SELECT * FROM emp WHERE deptno = 20;
{
  "results" : [
    {
      "columns" : [
        {
          "name" : "EMPNO",
          "type" : "NUMBER"
        },
        {
          "name" : "ENAME",
          "type" : "VARCHAR2"
        },
        {
          "name" : "JOB",
          "type" : "VARCHAR2"
        },
        {
          "name" : "MGR",
          "type" : "NUMBER"
        },
        {
          "name" : "HIREDATE",
          "type" : "DATE"
        },
        {
          "name" : "SAL",
          "type" : "NUMBER"
        },
        {
          "name" : "COMM",
          "type" : "NUMBER"
        },
        {
          "name" : "DEPTNO",
          "type" : "NUMBER"
        }
      ],
      "items" : [
        {
          "empno" : 7369,
          "ename" : "SMITH",
          "job" : "CLERK",
          "mgr" : 7902,
          "hiredate" : "17-DEZ-1980 00:00:00",
          "sal" : 800,
          "comm" : "",
          "deptno" : 20
        },
        {
          "empno" : 7566,
          "ename" : "JONES",
          "job" : "MANAGER",
          "mgr" : 7839,
          "hiredate" : "02-ABR-1981 00:00:00",
          "sal" : 2975,
          "comm" : "",
          "deptno" : 20
        },
        {
          "empno" : 7788,
          "ename" : "SCOTT",
          "job" : "ANALYST",
          "mgr" : 7566,
          "hiredate" : "19-ABR-1987 00:00:00",
          "sal" : 3000,
          "comm" : "",
          "deptno" : 20
        },
        {
          "empno" : 7876,
          "ename" : "ADAMS",
          "job" : "CLERK",
          "mgr" : 7788,
          "hiredate" : "23-MAI-1987 00:00:00",
          "sal" : 1100,
          "comm" : "",
          "deptno" : 20
        },
        {
          "empno" : 7902,
          "ename" : "FORD",
          "job" : "ANALYST",
          "mgr" : 7566,
          "hiredate" : "03-DEZ-1981 00:00:00",
          "sal" : 3000,
          "comm" : "",
          "deptno" : 20
        }
      ]
    }
  ]
}
5 linhas selecionadas.

SYS@orclpdb>


7- ANSICONSOLE

O formato ANSICONSOLE redimensiona as colunas para a largura dos dados a fim de economizar espaço. Ele também sublinha as colunas, em vez de usar uma linha separada de saída. As linhas sublinhadas não são copiadas para texto simples.


SYS@orclpdb> SET SQLFORMAT ANSICONSOLE
SYS@orclpdb> SELECT * FROM emp WHERE deptno = 20;

   EMPNO ENAME    JOB            MGR HIREDATE                    SAL    COMM    DEPTNO
________ ________ __________ _______ _______________________ _______ _______ _________
    7369 SMITH    CLERK         7902 17-DEZ-1980 00:00:00        800                20
    7566 JONES    MANAGER       7839 02-ABR-1981 00:00:00       2975                20
    7788 SCOTT    ANALYST       7566 19-ABR-1987 00:00:00       3000                20
    7876 ADAMS    CLERK         7788 23-MAI-1987 00:00:00       1100                20
    7902 FORD     ANALYST       7566 03-DEZ-1981 00:00:00       3000                20

5 linhas selecionadas.

SYS@orclpdb>


8- INSERT

O formato INSERT produz as instruções INSERT que poderiam ser usadas para recriar as linhas em uma tabela. Aqui entra o ponto que comentei, muito mais prático no momento de um backup ou alguma atividade específica em momentos onde a massa de dados para formatar e muito grande. Usando o SET SQLFORMAT INSERT você consegue gerar os comandos em segundos.


SYS@orclpdb> SET SQLFORMAT INSERT
SYS@orclpdb> SELECT * FROM emp WHERE deptno = 20;
REM INSERTING into EMP
SET DEFINE OFF;
Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values ('7369','SMITH','CLERK','7902',to_date('17-DEZ-1980 00:00:00','DD-MON-YYYY HH24:MI:SS'),'800',null,'20');
Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values ('7566','JONES','MANAGER','7839',to_date('02-ABR-1981 00:00:00','DD-MON-YYYY HH24:MI:SS'),'2975',null,'20');
Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values ('7788','SCOTT','ANALYST','7566',to_date('19-ABR-1987 00:00:00','DD-MON-YYYY HH24:MI:SS'),'3000',null,'20');
Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values ('7876','ADAMS','CLERK','7788',to_date('23-MAI-1987 00:00:00','DD-MON-YYYY HH24:MI:SS'),'1100',null,'20');
Insert into EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values ('7902','FORD','ANALYST','7566',to_date('03-DEZ-1981 00:00:00','DD-MON-YYYY HH24:MI:SS'),'3000',null,'20');

5 linhas selecionadas.

SYS@orclpdb>


9- LOADER

O formato LOADER produz saída delimitada por pipe com valores de string entre aspas duplas. Os nomes das colunas não são incluídos na saída.


SYS@orclpdb> SET SQLFORMAT LOADER
SYS@orclpdb> SELECT * FROM emp WHERE deptno = 20;
 7369|"SMITH"|"CLERK"|7902|"1980-12-17 00:00:00"|800||20|
 7566|"JONES"|"MANAGER"|7839|"1981-04-02 00:00:00"|2975||20|
 7788|"SCOTT"|"ANALYST"|7566|"1987-04-19 00:00:00"|3000||20|
 7876|"ADAMS"|"CLERK"|7788|"1987-05-23 00:00:00"|1100||20|
 7902|"FORD"|"ANALYST"|7566|"1981-12-03 00:00:00"|3000||20|

5 linhas selecionadas.

SYS@orclpdb>


10- FIXED

O formato FIXO produz colunas de largura fixa com todos os dados entre aspas duplas. A primeira linha contém os nomes das colunas.


SYS@orclpdb> SET SQLFORMAT FIXED
SYS@orclpdb> SELECT * FROM emp WHERE deptno = 20;
"EMPNO"                       "ENAME"                       "JOB"                         "MGR"                         "HIREDATE"                    "SAL"                         "COMM"
        "DEPTNO"
"7369"                        "SMITH"                       "CLERK"                       "7902"                        "17-DEZ-1980 00:00:00"        "800"                         ""
        "20"
"7566"                        "JONES"                       "MANAGER"                     "7839"                        "02-ABR-1981 00:00:00"        "2975"                        ""
        "20"
"7788"                        "SCOTT"                       "ANALYST"                     "7566"                        "19-ABR-1987 00:00:00"        "3000"                        ""
        "20"
"7876"                        "ADAMS"                       "CLERK"                       "7788"                        "23-MAI-1987 00:00:00"        "1100"                        ""
        "20"
"7902"                        "FORD"                        "ANALYST"                     "7566"                        "03-DEZ-1981 00:00:00"        "3000"                        ""
        "20"

5 linhas selecionadas.

SYS@orclpdb>


11- DELIMITED

O formato DELIMITADO é um caso especial, que permite definir manualmente a string delimitadora, assim como os caracteres que serão usados para envolver valores de string. O formato básico é o seguinte.

SET SQLFORMAT DELIMITED <delimiter> <left enclosure> <right enclosure>


No exemplo a seguir, a string delimitadora é ; e os valores das strings estão entre aspas duplas.


SYS@orclpdb> SET SQLFORMAT DELIMITED ; " "
SYS@orclpdb> SELECT * FROM emp WHERE deptno = 20;
"EMPNO";"ENAME";"JOB";"MGR";"HIREDATE";"SAL";"COMM";"DEPTNO"
7369;"SMITH";"CLERK";7902;17-DEZ-1980 00:00:00;800;;20
7566;"JONES";"MANAGER";7839;02-ABR-1981 00:00:00;2975;;20
7788;"SCOTT";"ANALYST";7566;19-ABR-1987 00:00:00;3000;;20
7876;"ADAMS";"CLERK";7788;23-MAI-1987 00:00:00;1100;;20
7902;"FORD";"ANALYST";7566;03-DEZ-1981 00:00:00;3000;;20

5 linhas selecionadas.

SYS@orclpdb>


Outro Exemplo, usando a string delimitadora \del\ :


SYS@orclpdb> SET SQLFORMAT DELIMITED \del\ " "
SYS@orclpdb> SELECT * FROM emp WHERE deptno = 20;
"EMPNO"\del\"ENAME"\del\"JOB"\del\"MGR"\del\"HIREDATE"\del\"SAL"\del\"COMM"\del\"DEPTNO"
7369\del\"SMITH"\del\"CLERK"\del\7902\del\17-DEZ-1980 00:00:00\del\800\del\\del\20
7566\del\"JONES"\del\"MANAGER"\del\7839\del\02-ABR-1981 00:00:00\del\2975\del\\del\20
7788\del\"SCOTT"\del\"ANALYST"\del\7566\del\19-ABR-1987 00:00:00\del\3000\del\\del\20
7876\del\"ADAMS"\del\"CLERK"\del\7788\del\23-MAI-1987 00:00:00\del\1100\del\\del\20
7902\del\"FORD"\del\"ANALYST"\del\7566\del\03-DEZ-1981 00:00:00\del\3000\del\\del\20

5 linhas selecionadas.

SYS@orclpdb>


Dessa forma, temos uma maneira rápida e simples para formatar dados usando o Sqlcl tornando a tarefa ágil quando temos uma massa de dados grande para realizar a atividade manualmente.



Conclusão:

  • Como configurar o Sqlcl no Windows
  • Como formatar dados usando sqlcl (DEFAULT,CSV,HTML,JSON,DELIMITED, FIXED,INSERT,LOADER,ANSICONSOLE)



Material de apoio:


Por hoje é isso pessoal, espero que esse conteúdo ajude de alguma forma e caso tenham alguma dúvida podem deixar aqui nos comentários ou me mandar via E-mail com Título da postagem, meu E-mail para envio de dúvidas e sugestões de novas postagens: pedrohvido@gmail.com.


Vejo vocês no próximo post!!











Comentários

Postagens mais visitadas deste blog

Instalando Oracle Database 19c em um Oracle Linux 8.8 no Virtual Box - PARTE 2

Temporary Tablespace : Identificando consultas consumindo uma Tablespace Temporária

SQL - Calculando crescimento do Banco de dados Oracle