AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-10356

Kshitiz Sharma's questions

Martin Hope
Kshitiz Sharma
Asked: 2017-05-09 02:57:12 +0800 CST

Explique a diferença de saída entre essa junção interna e natural

  • 3

Um JOIN NATURAL é uma operação JOIN que cria uma cláusula de junção implícita para você com base nas colunas comuns nas duas tabelas que estão sendo unidas. Uma junção NATURAL pode ser uma junção INNER, uma junção LEFT OUTER ou uma junção RIGHT OUTER. O padrão é junção INNER. Fonte

Portanto, uma junção natural pode ser uma forma abreviada de implementar a junção interna se ambas as tabelas tiverem uma coluna comum.

Considere a seguinte tabela:

SELECT * FROM t1;
/*
        ID PLANET  
---------- --------
         1 jupiter 
         2 earth 
*/

Unimos a tabela a ela mesma:

SELECT first.id, first.planet FROM t1 first INNER JOIN t1 second ON first.id=second.id;
/*
        ID PLANET  
---------- --------
         1 jupiter 
         2 earth   
*/

Tente fazer o mesmo com a notação de junção natural:

SELECT id, planet FROM t1 NATURAL JOIN t1;
/*
        ID PLANET  
---------- --------
         1 jupiter 
         1 jupiter 
         2 earth   
         2 earth   
*/

Dado que a junção natural aqui é implementada usando a junção interna, por que as várias linhas?

Atualizar:

A execução da mesma junção com aliases de tabela tem uma saída diferente:

SELECT id, planet FROM t1 first NATURAL JOIN t1 second;
/*
        ID PLANET  
---------- --------
         1 jupiter 
         2 earth   
*/
oracle join
  • 2 respostas
  • 1015 Views
Martin Hope
Kshitiz Sharma
Asked: 2017-05-03 06:07:12 +0800 CST

Diferença entre a visualização inline e a cláusula WITH?

  • 10

As visualizações embutidas permitem que você selecione uma subconsulta como se fosse uma tabela diferente:

SELECT
    *
FROM /* Selecting from a query instead of table */
    (
        SELECT
            c1
        FROM
            t1
        WHERE
            c1 > 0
    ) a
WHERE
    a.c1 < 50;

Eu vi isso usando termos diferentes: visualizações inline, cláusula WITH, CTE e tabelas derivadas. Para mim, parece que eles são sintaxe específica de fornecedor diferente para a mesma coisa.

Esta é uma suposição errada? Existem diferenças técnicas/de desempenho entre eles?

oracle cte
  • 5 respostas
  • 29582 Views
Martin Hope
Kshitiz Sharma
Asked: 2017-04-26 12:07:44 +0800 CST

O que realmente é uma cláusula SQL?

  • 10

Isso pode soar como uma pergunta muito simples, mas não estou achando fácil localizar uma resposta adequada.

Para a pergunta "O que são cláusulas sql?" a maioria dos recursos na internet simplesmente fornece uma lista de cláusulas e explica o que elas fazem.

Mas estou tentando entender em termos abstratos como isso é definido. Como uma notação genérica que captura todos os tipos de consultas que podem ser escritas e como as cláusulas se encaixam nelas.

Existem propriedades comuns a todas as cláusulas? Por que UNION é chamado de operador enquanto HAVING é uma cláusula?

sql-standard
  • 3 respostas
  • 7816 Views
Martin Hope
Kshitiz Sharma
Asked: 2017-02-18 06:18:09 +0800 CST

ORA-01722: o número especificado era inválido ao truncar o carimbo de data/hora

  • 0

Consulta:

SELECT
    first_load_time
FROM
    v$sql;

Resultado:

2017-02-16/07:45:25
2017-02-17/06:47:36
2017-02-17/02:05:31
2017-02-15/17:39:13

Consulta:

SELECT
    to_char(FIRST_LOAD_TIME, 'YYYY-MM-DD')
FROM
    v$sql;  

Resultado:

ORA-01722: *Causa: O número especificado era inválido.

SELECT
    trunc(FIRST_LOAD_TIME)
FROM
    v$sql;

ORA-01722: *Causa: O número especificado era inválido.

Por que o Oracle dá erro de número inválido ao truncar o carimbo de data/hora? Eu preciso fazer um grupo por com data nesta visão.

oracle oracle-11g-r2
  • 1 respostas
  • 2707 Views
Martin Hope
Kshitiz Sharma
Asked: 2017-01-19 01:56:14 +0800 CST

ORA-01536: Erro de falta de espaço ao fazer CTAS

  • -1

Eu tenho dois esquemas Ae B. Estou tentando copiar a tabela B.userspara A. Eu segui estes passos:

Executar no esquema B:

GRANT ALL ON users TO A;

Executar no esquema A:

CREATE TABLE users AS (SELECT * FROM B.users);

Isso dá o erro:

Erro SQL: ORA-01536: cota de espaço excedida para tablespace 'A' 01536. 00000 - "cota de espaço excedida para tablespace '%s'" *Causa: A cota de espaço para o proprietário do segmento no tablespace foi esgotada e a operação foi tentada a criação de uma nova extensão de segmento no tablespace. *Ação: Elimine objetos desnecessários no espaço de tabela para recuperar espaço ou faça com que um usuário privilegiado aumente a cota neste espaço de tabela para o proprietário do segmento.

O erro parece ser enganoso e eu suspeito que algo mais seja o problema aqui, porque a tabela de usuários tem apenas cerca de 1000 usuários e o espaço de tabela em questão tem 2 GB alocados para ela, tudo isso de graça. Além disso, tentar copiar apenas uma única linha também dá o mesmo erro:

CREATE TABLE users AS (SELECT * FROM B.users where rownum < 2);

No entanto, a cópia do esquema sem nenhum dado é bem-sucedida:

CREATE TABLE users AS (SELECT * FROM B.users where rownum = -1); /* This works */

O que estou perdendo aqui?

oracle tablespaces
  • 1 respostas
  • 504 Views
Martin Hope
Kshitiz Sharma
Asked: 2016-06-13 13:04:47 +0800 CST

SP2-0584: A variável EXIT era um erro não numérico

  • 1

Estou usando o seguinte loop PLSQL para excluir um grande número de registros da minha tabela. No entanto, está me dando um erro de que a condição de saída do loop não está correta.

FOR i IN 1..100
LOOP
  DELETE
  FROM mytable
  WHERE date <= (SYSDATE - 30)
  AND ROWNUM < 5000;
EXIT WHEN (SELECT COUNT(*)
  FROM mytable
  WHERE date <= (SYSDATE - 30)) = 0;
  COMMIT;
END LOOP;

Qual é o problema aqui?

oracle plsql
  • 1 respostas
  • 2235 Views
Martin Hope
Kshitiz Sharma
Asked: 2016-06-06 13:59:42 +0800 CST

O rastreamento automático do SQL Developer não mostra exclusões em cascata

  • 1

Estou tentando entender as características de desempenho da instrução SQL que DELETE em cascata em 4 tabelas vinculadas.

Quando faço o auto tracing da instrução ele só me mostra a instrução DELETE executada na tabela. Não mostra detalhes de exclusões feitas em outras tabelas.

Por que o SQL Developer não mostra cascatas no rastreamento?

oracle oracle-sql-developer
  • 1 respostas
  • 182 Views
Martin Hope
Kshitiz Sharma
Asked: 2016-06-06 09:56:26 +0800 CST

Quando alguém deseja usar a criptografia de dados transparente Oracle

  • 1

Os recursos do Oracle TDE vêm com várias limitações , como não ser capaz de criptografar colunas usadas em restrições de chave estrangeira. E provavelmente está disponível apenas com a edição empresarial que custa mais de 100 mil dólares.

Por que alguém iria querer pagar e usar o TDE em vez de simplesmente usar a criptografia do sistema de arquivos com o sistema operacional? Isso é gratuito e contorna várias limitações relacionadas a FKs, etc.

Estou perdendo algumas vantagens que ele oferece?

oracle encryption
  • 1 respostas
  • 67 Views
Martin Hope
Kshitiz Sharma
Asked: 2016-05-28 14:52:10 +0800 CST

Por que o Oracle não mostra meus privilégios?

  • 1

Eu tenho um usuário que pode descartar, alterar, criar tabelas e índices. Mas quando listo os privilégios para meu usuário Oracle, ele não mostra nenhum CREATE TABLEou outro desses privilégios. Como posso fazer essas operações sem os privilégios ou por que o Oracle não as mostra?

A execução das seguintes consultas não retorna nada:

SELECT * FROM USER_TAB_PRIVS;
SELECT * FROM all_tab_privs_recd WHERE grantee = 'user_kshitiz';

SELECT * FROM USER_SYS_PRIVSRetornos em execução :

USERNAME                       PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
user_kshitiz                   UNLIMITED TABLESPACE                     NO 
user_kshitiz                   CREATE SEQUENCE                          NO

SELECT * FROM USER_ROLE_PRIVSRetornos em execução :

USERNAME                       GRANTED_ROLE                   ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
user_kshitiz                   CONNECT                        NO  YES NO 
user_kshitiz                   RESOURCE                       NO  YES NO 
user_kshitiz                   SCHEMA_1_RW_ROLE               NO  YES NO 

A verificação de privilégios em cada uma dessas funções não retorna nada.

SELECT * FROM ROLE_TAB_PRIVS WHERE ROLE = 'CONNECT';
SELECT * FROM ROLE_TAB_PRIVS WHERE ROLE = 'RESOURCE';
SELECT * FROM ROLE_TAB_PRIVS WHERE ROLE = 'SCHEMA_1_RW_ROLE';

Então, de onde vem o poder?

oracle permissions
  • 1 respostas
  • 1232 Views
Martin Hope
Kshitiz Sharma
Asked: 2016-05-28 14:35:12 +0800 CST

Como exportar objetos próprios usando expdp sem privilégios especiais?

  • 0

De acordo com esta postagem nos fóruns da Oracle, o expdp pode ser usado para exportar seu próprio esquema sem nenhum privilégio especial:

Tudo depende do que você deseja que esse usuário possa exportar/importar. Se todo o uso for exportar/importar são seus próprios objetos, eles não precisam de nenhum priv aumentado. Se você quiser que o usuário seja capaz de exportar objetos pertencentes a outros esquemas, eles precisarão do exp_full_database e, para importar, precisarão do imp_full_database.

No entanto, simplesmente não consigo fazê-lo funcionar. O objeto de diretório deve ser especificado, caso contrário, o expdp exibe o erro: ORA-39145: directory object parameter must be specified and non-null Mas criar diretórios requer CREATE ANY DIRECTORYprivilégio de sistema.

Como então posso exportar meu próprio esquema como um usuário normal?

oracle export
  • 2 respostas
  • 5633 Views
Martin Hope
Kshitiz Sharma
Asked: 2016-04-30 13:49:04 +0800 CST

Selecione linhas onde a linha menor não existe

  • 2

Considere os seguintes dados da tabela:

ID NAME
1 Kshitiz 
2 Aman
5 Aakash
6 Manjeet

Aqui faltam registros entre 2 e 5. Que consulta posso usar para selecionar a linha 5 desta tabela?

oracle-11g
  • 2 respostas
  • 51 Views
Martin Hope
Kshitiz Sharma
Asked: 2014-03-06 01:36:58 +0800 CST

Por que o Oracle armazena o tempo na coluna DATE?

  • 3

Eu tenho uma tabela com uma coluna de data. Eu usei JDBC para salvar um objeto java.util.Date na tabela.

Quando executo a seguinte consulta, obtenho data e também um valor de tempo:

select To_CHAR(departure_date,'DD-MM-YYYY HH:MI') from service

Isso me diz que a data é coluna também está armazenando tempo.

Isso é inesperado. O tipo de data não deveria descartar o valor do tempo como um tipo inteiro descarta dígitos fracionários?

oracle datatypes
  • 1 respostas
  • 10622 Views
Martin Hope
Kshitiz Sharma
Asked: 2013-11-29 19:50:44 +0800 CST

Como fazer a saída do sqlplus aparecer em uma linha?

  • 60

Tenho uma tabela com 100 colunas. Ao selecionar dados nos SQL Pluswraps de saída, dificultando a leitura.

O que eu gostaria é que uma barra de rolagem horizontal aparecesse ou de alguma forma enviasse a saída paraless

Eu executo as seguintes instruções no SQLPlus -

SET LINESIZE 32000;
SET PAGESIZE 40000;
SET LONG 50000;
SPOOL output.txt
SELECT * FROM big_table;

Então basheu corro -

menos output.txt

A saída ainda aparece embrulhada e ilegível.

oracle sqlplus
  • 3 respostas
  • 576036 Views
Martin Hope
Kshitiz Sharma
Asked: 2013-04-23 21:24:46 +0800 CST

Como formatar corretamente a saída do shell sqlite?

  • 139

Se eu for mysql shelle digitar SELECT * FROM users, recebo -

+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
| USERID | NAME           | EMAILID                         | PASSWORD | USER_TYPE | CONTACT_ID_FKUSERS | COMPANY_ID_FKUSERS |
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
|    137 | X              | [email protected]                        | #        | ADMIN     |                166 |                110 |
|    138 | Kshitiz        | [email protected]                 | asdf     | ADMIN     |                167 |                111 |
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+

Oracle sqlplusmostra -

USERID     NAME  EMAILID    PASSWORD   USER_TYPE  CONTACT_ID_FKUSERS COMPANY_ID_FKUSERS
---------- ----- ---------- ---------- ---------- ------------------ ------------------
137        X     [email protected]   #          ADMIN                     166                110
137        X     [email protected]   #          ADMIN                     166                110

Sqlite shellmostra -

137|X|[email protected]|#|ADMIN|166|110
138|Kshitiz|[email protected]|asdf|ADMIN|167|111
  1. Existe uma maneira de embelezar a saída de sqlite shell?
  2. Existe um shell alternativo que seja melhor que a distribuição padrão? (somente clientes CLI)
sqlite
  • 9 respostas
  • 91651 Views
Martin Hope
Kshitiz Sharma
Asked: 2013-01-30 03:51:01 +0800 CST

Mysql não fecha conexões

  • 2

Eu tenho um aplicativo Java configurado com um pool de conexão. Assegurei-me de que o aplicativo encerrasse as conexões corretamente.

No entanto, quando executo este comando na linha de comando mysql -

show status like '%onn%';

+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| Aborted_connects         | 2     |
| Connections              | 72    |
| Max_used_connections     | 10    |
| Ssl_client_connects      | 0     |
| Ssl_connect_renegotiates | 0     |
| Ssl_finished_connects    | 0     |
| Threads_connected        | 2     |
+--------------------------+-------+

Por que o mysql mantém as conexões abertas quando elas são encerradas pelo cliente?

O conteúdo do my.cnfarquivo é (comentários e seções sem importância omitidos) -

[client]
port        = 3306
socket      = /var/run/mysqld/mysqld.sock

[mysqld]
user        = mysql
pid-file            = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /var/lib/mysql
tmpdir      = /tmp
lc-messages-dir = /usr/share/mysql
lower_case_table_names = 1
skip-external-locking

key_buffer      = 16M
max_allowed_packet  = 16M
thread_stack    = 192K
thread_cache_size   = 8

myisam-recover      = BACKUP

query_cache_limit   = 1M
query_cache_size    = 16M

expire_logs_days    = 10
max_binlog_size     = 100M
mysql max-connections
  • 1 respostas
  • 9107 Views
Martin Hope
Kshitiz Sharma
Asked: 2012-12-28 03:55:03 +0800 CST

Como numerar os resultados do SQL sequencialmente?

  • 0

Dada a seguinte consulta -

SELECT name, age FROM students WHERE age > 22

O resultado é -

name    age
----   ---
Kshitiz 23
Steve   22
Paul    24

Como posso numerar os resultados sequencialmente? Igual a -

serial  name    age
------  ----    ---
   1    Kshitiz 23
   2    Steve   22
   3    Paul    24

Observe que usar uma chave substituta não é uma solução. Como o ID substituto para o registro Kshitiz pode ser 9. Desejo que quaisquer resultados retornados de qualquer local sejam numerados sequencialmente.

mysql
  • 1 respostas
  • 564 Views
Martin Hope
Kshitiz Sharma
Asked: 2012-12-16 00:13:40 +0800 CST

Como agregar pontos de dados em uma tabela?

  • 2

Suponha que eu tenha a seguinte tabela -

CREATE TABLE data_points (t DATETIME PRIMARY KEY, value INTEGER);

Quero agregar os dados calculando a média de cada 10 pontos na tabela.

ou seja, se a tabela tiver 20 pontos de dados, o resultado será dois pontos agregados. 1º ponto agregado a média de 1-10 pontos de dados e 2º de 11-20.

Isso é possível usando uma consulta SQL?

aggregate h2
  • 1 respostas
  • 188 Views
Martin Hope
Kshitiz Sharma
Asked: 2012-10-28 00:04:43 +0800 CST

Como ver a lista de bancos de dados no Oracle?

  • 44

Existe um equivalente à SHOW DATABASESinstrução MySQL?

É possível encontrar bancos de dados em um cluster? ou seja, bancos de dados presentes na rede em algum outro sistema?

Eu poderia analisar os arquivos presentes em uma instalação do Oracle para encontrar os mesmos?

Com credenciais de acesso completas a um sistema Oracle, como você faria para enumerar todos os bancos de dados existentes?

oracle
  • 8 respostas
  • 351632 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve