Pular para o conteúdo
Visualizando 15 posts - 31 até 45 (de 47 do total)
  • Autor
    Posts
  • #99460
    Avatar de joffrejoffre
    Participante

      [quote=”felipeg”:290wrgot]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?

      #99461
      Avatar de felipegfelipeg
      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.

        #99462
        Avatar de joffrejoffre
        Participante

          [quote=”felipeg”:3mdyi56g]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.[/quote]

          Felipe, finalmente funcionou. Encontrei o que eu estava fazendo errado.

          Ao invés de usar “/” para finalizar uma linha de comando, eu estava usando “;” daí o log era gerado incorretamente.

          MUITO OBRIGADO pela ajuda!

          E para SQL Server? Sabe como devo fazer esse SELECT?

          #99463
          Avatar de felipegfelipeg
          Participante

            [quote=”joffre”:2f63zwqq]
            Felipe, finalmente funcionou. Encontrei o que eu estava fazendo errado.

            Ao invés de usar “/” para finalizar uma linha de comando, eu estava usando “;” daí o log era gerado incorretamente.

            MUITO OBRIGADO pela ajuda!

            E para SQL Server? Sabe como devo fazer esse SELECT?[/quote]

            Olha, ai da pra fazer com case

            select case COUNT(*)
            when 0 then 'FALSE'
            else 'TRUE'
            end
            from sys.objects where type = 'U'
            and name = 'DIR_LIST'

            GO

            select case COUNT(*)
            when 0 then 'FALSE'
            else 'TRUE'
            end
            from sys.objects where type = 'U'
            and name = 'TESTE'

            Atenciosamente,
            Felipe.

            #99464
            Avatar de joffrejoffre
            Participante

              Está dando erro nisso aqui: sys.objects

              #99465
              Avatar de felipegfelipeg
              Participante

                [quote=”joffre”:3raummog]Está dando erro nisso aqui: sys.objects[/quote]

                É cara, ai tem que ver certinho as permissões que o usuário tem que ter.
                O usuário da aplicação é sysadmin então foi de boa.

                Veja se esse roda sem permissão

                select TABLE_NAME from INFORMATION_SCHEMA.TABLES

                Atenciosamente,
                Felipe.

                #99466
                Avatar de joffrejoffre
                Participante

                  [quote=”felipeg”:djewytw8][quote=”joffre”:djewytw8]Está dando erro nisso aqui: sys.objects[/quote]

                  É cara, ai tem que ver certinho as permissões que o usuário tem que ter.
                  O usuário da aplicação é sysadmin então foi de boa.

                  Veja se esse roda sem permissão

                  select TABLE_NAME from INFORMATION_SCHEMA.TABLES

                  Atenciosamente,
                  Felipe.[/quote]

                  Esse SELECT me retornou o seguinte log:

                  SQL*Plus: Release 10.2.0.3.0 – Production on Qua Jun 1 13:44:55 2011

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

                  SQL> Conectado.
                  SQL> SP2-0024: Nada para alterar.
                  SQL> Desconectado de Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 – Production
                  With the Partitioning, OLAP and Data Mining options

                  #99467
                  Avatar de felipegfelipeg
                  Participante

                    [quote=”joffre”:1qouvtvz][quote=”felipeg”:1qouvtvz][quote=”joffre”:1qouvtvz]Está dando erro nisso aqui: sys.objects[/quote]

                    É cara, ai tem que ver certinho as permissões que o usuário tem que ter.
                    O usuário da aplicação é sysadmin então foi de boa.

                    Veja se esse roda sem permissão

                    select TABLE_NAME from INFORMATION_SCHEMA.TABLES

                    Atenciosamente,
                    Felipe.[/quote][/quote]

                    Esses dois últimos posts não foram pro Oracle, afinal você disse que está OK.

                    Foi referente a esta pergunta
                    [quote=”joffre”:1qouvtvz]
                    E para SQL Server? Sabe como devo fazer esse SELECT?
                    [/quote]

                    Atenciosamente,
                    Felipe.

                    #99468
                    Avatar de joffrejoffre
                    Participante

                      Erro meu.

                      O comando
                      select TABLE_NAME from INFORMATION_SCHEMA.TABLES

                      Retornou o seguinte log:

                      TABLE_NAME
                      ——————————————————————————————————————————–
                      dtproperties
                      LGConfiguracao
                      LGID
                      MSreplication_options
                      spt_datatype_info
                      spt_datatype_info_ext
                      spt_fallback_db
                      spt_fallback_dev
                      spt_fallback_usg
                      spt_monitor
                      spt_provider_types
                      spt_server_info
                      spt_values
                      sysconstraints
                      syslogins
                      sysoledbusers
                      sysopentapes
                      sysremotelogins
                      syssegments
                      CHECK_CONSTRAINTS
                      COLUMN_DOMAIN_USAGE
                      COLUMN_PRIVILEGES
                      COLUMNS
                      CONSTRAINT_COLUMN_USAGE
                      CONSTRAINT_TABLE_USAGE
                      DOMAIN_CONSTRAINTS
                      DOMAINS
                      KEY_COLUMN_USAGE
                      PARAMETERS
                      REFERENTIAL_CONSTRAINTS
                      ROUTINE_COLUMNS
                      ROUTINES
                      SCHEMATA
                      TABLE_CONSTRAINTS
                      TABLE_PRIVILEGES
                      TABLES
                      VIEW_COLUMN_USAGE
                      VIEW_TABLE_USAGE
                      VIEWS

                      (39 rows affected)

                      #99469
                      Avatar de joffrejoffre
                      Participante

                        Agora tentei executar no SQL esse comando:

                        select case COUNT(*)
                        when 0 then 'FALSE'
                        else 'TRUE'
                        end
                        from sys.objects where type = 'U'
                        and name = 'dbo.LGID'
                        GO

                        E ele retornou esse log:

                        Msg 208, Level 16, State 1, Server SRV-TSBDSQL2K, Line 5 Invalid object name ‘sys.objects’.

                        #99470
                        Avatar de burgaburga
                        Participante

                          No SQL Server dê uma olhada nesta tabela

                          INFORMATION_SCHEMA.Tables

                          #99471
                          Avatar de joffrejoffre
                          Participante

                            [quote=”burga”:3jun33yz]No SQL Server dê uma olhada nesta tabela

                            INFORMATION_SCHEMA.Tables[/quote]

                            Desculpe a ignorância, mas aonde exatamente devo “dar uma olhada”?

                            Se era para fazer um SELECT * FROM informatcion_schema.Tables

                            O resultado foram mais de 1400 linhas.

                            #99472
                            Avatar de felipegfelipeg
                            Participante

                              [quote=”joffre”:30k6lrig]Erro meu.

                              O comando
                              select TABLE_NAME from INFORMATION_SCHEMA.TABLES

                              Retornou o seguinte log:

                              TABLE_NAME
                              ——————————————————————————————————————————–
                              dtproperties
                              LGConfiguracao
                              LGID
                              MSreplication_options
                              spt_datatype_info
                              spt_datatype_info_ext
                              spt_fallback_db
                              spt_fallback_dev
                              spt_fallback_usg
                              spt_monitor
                              spt_provider_types
                              spt_server_info
                              spt_values
                              sysconstraints
                              syslogins
                              sysoledbusers
                              sysopentapes
                              sysremotelogins
                              syssegments
                              CHECK_CONSTRAINTS
                              COLUMN_DOMAIN_USAGE
                              COLUMN_PRIVILEGES
                              COLUMNS
                              CONSTRAINT_COLUMN_USAGE
                              CONSTRAINT_TABLE_USAGE
                              DOMAIN_CONSTRAINTS
                              DOMAINS
                              KEY_COLUMN_USAGE
                              PARAMETERS
                              REFERENTIAL_CONSTRAINTS
                              ROUTINE_COLUMNS
                              ROUTINES
                              SCHEMATA
                              TABLE_CONSTRAINTS
                              TABLE_PRIVILEGES
                              TABLES
                              VIEW_COLUMN_USAGE
                              VIEW_TABLE_USAGE
                              VIEWS

                              (39 rows affected)

                              [/quote]

                              Como que usuário e em qual base você está rodando?

                              Tente usar com *
                              select * from INFORMATION_SCHEMA.TABLES

                              O select na sys.objects só irá funcionar se você tiver as permissões corretas, mas, se o primeiro select listar as tabelas, esse nem será necessário.

                              Atenciosamente,
                              Felipe.

                              #99473
                              Avatar de burgaburga
                              Participante

                                Sim, mas se vc der uma olhada melhor, você vai reparar que ela é a tabela equivalente à all_tables do Oracle… Coloque a condição WHERE TABLE_NAME = ‘NOME_DA_SUA_TABELA’, da mesma forma que fez no Oracle, mas usando o CASE ao invés do DECODE como o Felipe falou.

                                Agora que eu vi que o Felipe já tinha passado pra você ver esta tabela…

                                #99474
                                Avatar de joffrejoffre
                                Participante

                                  SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='dbo.LGID'

                                  Usei o código acima como foi dito, mas retorna 0 (False) ao invés de retornar 1 (True).

                                Visualizando 15 posts - 31 até 45 (de 47 do total)
                                • Você deve fazer login para responder a este tópico.
                                plugins premium WordPress