Pular para o conteúdo

Fóruns Banco de dados Oracle SqlPlus SqlPlus

#99461
felipeg
Participante

    [quote=”joffre”:1gnz4pxp][quote=”felipeg”:1gnz4pxp]Se for do mesmo owner é só colocar as tabelas dentro do in ou usar um subselect com todas as tabelas

    SELECT Decode(Count(*), 0, 'FALSE', 1, 'TRUE')
    FROM all_tables WHERE table_name IN ('NOME_DA_TABELA1' , 'NOME_DA_TABELA2', 'NOME_DA_TABELA3')
    AND owner = 'OWNER DA TABELA';
    /
    exit

    Atenciosamente,
    Felipe.[/quote]

    [b]Sim, é tudo do mesmo owner.

    Usei o seguinte código:[/b]
    SELECT DECODE(COUNT(*), 0, 'FALSE', 1, 'TRUE')
    FROM all_tables WHERE table_name IN ('LGID' , 'LGCONFIGURACAO')
    ;

    E obtive a seguinte resposta:

    DECODE(COUNT(*),0,’FALSE’,1,’T
    ——————————
    NULL

    1 Row(s) affected

    Assim funcionou do jeito que eu preciso:
    SELECT DECODE(COUNT(), 0, 'FALSE', 1, 'TRUE') FROM ALL_TABLES WHERE TABLE_NAME='LGID'
    ;
    SELECT DECODE(COUNT(
    ), 0, 'FALSE', 1, 'TRUE') FROM ALL_TABLES WHERE TABLE_NAME='LGCONFIGURACAO'
    ;

    [b]Retornou 2 TRUEs, que é o que eu preciso. Mas o problema ainda é fazer o SQLPLUS ler um arquivo .sql e gerar o LOG da mesma forma.

    Coloquei o código acima dentro de um arquivo.sql e tentei executá-lo, mas o LOG continua saindo com uns números estranhos como postado anteriormente ao invés de sair o resultado da consulta.[/b]

    Alguma idéia de como fazer para sair certo?[/quote]

    Olá,

    Primeiramente peço desculpas pelo select com IN, não irá funcionar mesmo.
    Segundo, sobre a geração do log, fiz a mesma coisa aqui e o output do arquivo foi esse.

    SQL*Plus: Release 10.2.0.3.0 - Production on Wed Jun 1 11:28:31 2011

    Copyright (c) 1982, 2006, Oracle. All Rights Reserved.

    Connected.

    DECOD

    TRUE

    DECOD

    FALSE

    Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
    With the Partitioning, OLAP and Data Mining options

    O que tem dentro desse seu sql? o meu está assim


    conn usuario/senha@instancia

    SELECT DECODE(COUNT(), 0, 'FALSE', 1, 'TRUE') FROM ALL_TABLES WHERE TABLE_NAME=
    'AIDF'
    /
    SELECT DECODE(COUNT(
    ), 0, 'FALSE', 1, 'TRUE') FROM ALL_TABLES WHERE TABLE_NAME=
    'TESTE'
    /
    exit

    Atenciosamente,
    Felipe.