Pular para o conteúdo
Visualizando 15 posts - 1 até 15 (de 29 do total)
  • Autor
    Posts
  • #99152
    Avatar de airoospairoosp
    Participante

      Boa tarde,

      A view que retorna informações sobre os privilégios é a all_tab_privs mas sendo linha a linha, repetindo o nome da tabela para cada privilégio. Para retornar apenas uma única linha com todos os privilégios tenho que criar um cursor correto?

      Alguém conhece outra forma de listar as informações de privilégio em coluna ao invés de ser linha a linha?

      user1 cadvendas insert
      user1 cadvendas update

      gerar:

      user1 cadvendas insert, update

      Obrigado.

      Airton

      #99162
      Avatar de felipegfelipeg
      Participante

        Airton, boa tarde

        Veja se este comando atende sua necessidade:

        SELECT owner, table_name, select_priv, insert_priv, delete_priv, update_priv
        FROM table_privileges
        WHERE grantee = ”
        ORDER BY owner, table_name;

        Atenciosamente,
        Felipe.

        #99191
        Avatar de airoospairoosp
        Participante

          Vou verificar.

          Obrigado.

          Airton

          #99192
          Avatar de felipegfelipeg
          Participante

            [quote=”airoosp”:1vxo50ne]Vou verificar.

            Obrigado.

            Airton[/quote]

            Sem problemas!

            Caso você precisar listar da forma que citou é so colocar um case nas opções de retorno do select.

            Qualquer dúvida é só postar!
            Atenciosamente,
            Felipe.

            #99211
            Avatar de airoospairoosp
            Participante

              Boa tarde,

              Estou montando outro servidor de testes na versão 9i, o banco já foi criado e gostaria de saber se ao utilizar o imp.exe as tablespaces dos sistemas são criadas automaticamente. Se sim, qual a sintaxe a ser utilizada e se há alguma restrição ou problema que pode ocorrer após a importação?

              Obrigado.

              Airton

              #99212
              Avatar de burgaburga
              Participante

                Pelo imp.exe você deve criar as tablespaces manualmente antes de importar o dump.

                #99214
                Avatar de CleitonHanzenCleitonHanzen
                Participante

                  Opá….

                  Se for feito import FULL cria as tablespaces também, só q a estrutura de diretórios deve estar igual….. 😉

                  #99216
                  Avatar de burgaburga
                  Participante

                    [quote=”CleitonHanzen”:1v3ko6ea]Opá….

                    Se for feito import FULL cria as tablespaces também, só q a estrutura de diretórios deve estar igual….. 😉 [/quote]

                    Verdade!!! Quando se faz um export FULL e um import FULL não é necessário. Eu que tenho o costume de SEMPRE criar as tablespaces de forma manual… 8)

                    #99217
                    Avatar de felipegfelipeg
                    Participante

                      [quote=”burga”:391oudtt][quote=”CleitonHanzen”:391oudtt]Opá….

                      Se for feito import FULL cria as tablespaces também, só q a estrutura de diretórios deve estar igual….. 😉 [/quote]

                      Verdade!!! Quando se faz um export FULL e um import FULL não é necessário. Eu que tenho o costume de SEMPRE criar as tablespaces de forma manual… 8) [/quote]

                      Tenho o mesmo costume!

                      Principalmente devido ao fato de nunca precisar fazer uma migração com export FULL acabei me acostumando a sempre criar as tablespaces manualmente.

                      Caso tenha alguma situação inusitada na sua migração é só postar aqui no fórum!

                      PS: O comando solicitado no começo do post ajudou?

                      Atenciosamente,
                      Felipe.

                      #99218
                      Avatar de airoospairoosp
                      Participante

                        Bom dia,

                        Sim o comando ajudou, e pesquisando na internet encontrei outra solução que usa um type e function. Vou postar aqui no fórum.

                        Para que seja possível utilizar o import full é necessário que o db_block_size do novo banco seja igual ao banco de origem?

                        Obrigado.

                        Airton

                        #99223
                        Avatar de airoospairoosp
                        Participante

                          Boa tarde,

                          Uma dúvida referente a importação, com o import full todas as tablespaces serão criadas, e as tablespaces default do banco aquelas criadas automaticamente na instalação do 9i (undo, drsys, indx, tools, users, xdb, system) não são criadas mas ocorre a importação dos dados?

                          Obrigado.

                          Airton

                          #99224
                          Avatar de airoospairoosp
                          Participante

                            Referente ao assunto da query para retornar as informações em uma única linha encontrei a solução abaixo na internet.

                            Primeiro criar o type, type body e depois uma function.

                            CREATE OR REPLACE TYPE string_agg_type AS OBJECT
                            (
                            total VARCHAR2(4000),

                              STATIC FUNCTION
                                  ODCIAggregateInitialize(sctx IN OUT string_agg_type )
                                   RETURN NUMBER,
                            
                             MEMBER FUNCTION
                                  ODCIAggregateIterate(self IN OUT string_agg_type ,
                                                      value IN VARCHAR2 )
                                  RETURN NUMBER,
                            
                             MEMBER FUNCTION
                                  ODCIAggregateTerminate(self IN string_agg_type,
                                                         returnValue OUT  varchar2,
                                                         flags IN number)
                                  RETURN NUMBER,
                            
                             MEMBER FUNCTION
                                  ODCIAggregateMerge(self IN OUT string_agg_type,
                                                    ctx2 IN string_agg_type)
                                  RETURN NUMBER
                            

                            )

                            CREATE OR REPLACE TYPE BODY string_agg_type
                            IS

                            STATIC FUNCTION ODCIAggregateInitialize(sctx IN OUT string_agg_type)
                            RETURN NUMBER
                            IS
                            BEGIN
                            sctx := string_agg_type( null );
                            RETURN ODCIConst.Success;
                            END;

                            MEMBER FUNCTION ODCIAggregateIterate(self IN OUT string_agg_type,
                            value IN varchar2 )
                            RETURN NUMBER
                            IS
                            BEGIN
                            self.total := self.total || ‘,’ || value;
                            RETURN ODCIConst.Success;
                            END;

                            MEMBER FUNCTION ODCIAggregateTerminate(self IN string_agg_type,
                            returnValue OUT varchar2,
                            flags IN number)
                            RETURN NUMBER
                            IS
                            BEGIN
                            returnValue := ltrim(self.total,’,’);
                            return ODCIConst.Success;
                            END;

                            MEMBER FUNCTION ODCIAggregateMerge(self IN OUT string_agg_type,
                            ctx2 IN string_agg_type)
                            RETURN NUMBER
                            IS
                            BEGIN
                            self.total := self.total || ctx2.total;
                            return ODCIConst.Success;
                            END;

                            end;

                            CREATE OR REPLACE FUNCTION stragg(input VARCHAR2)
                            RETURN varchar2
                            PARALLEL_ENABLE AGGREGATE USING string_agg_type;

                            Como exemplo utilizei a pesquisa abaixo:

                            select grantee, stragg(privilege)
                            from all_tab_privs
                            where table_schema = ‘VENDAS’
                            and table_name = ‘COMISSAO’
                            and grantee = ‘FINANCEIRO’
                            group by grantee

                            O resultado foi: financeiro select, insert, update

                            Espero que seja útil para alguém.

                            Airton

                            #99226
                            Avatar de CleitonHanzenCleitonHanzen
                            Participante

                              [quote=”airoosp”:sii7s08x]Boa tarde,

                              Uma dúvida referente a importação, com o import full todas as tablespaces serão criadas, e as tablespaces default do banco aquelas criadas automaticamente na instalação do 9i (undo, drsys, indx, tools, users, xdb, system) não são criadas mas ocorre a importação dos dados?

                              Obrigado.

                              Airton[/quote]

                              Tablespaces de Sistema (system, undo e sysaux a partir do 10g) são necessárias até pra abrir o banco, ou seja, sem elas nem o IMPORT FULL começa. As demais tablespaces são “normais” e qualquer tablespace “normal” será criada, não importando o nome.

                              Como o Burga e o Felipe comentaram, as boas práticas recomendam que você crie as tablespaces antes de iniciar o IMPORT e que o espaço seja pelo menos igual ao que já está em uso no banco exportado.

                              #99227
                              Avatar de airoospairoosp
                              Participante

                                Cleiton,

                                Entendi o que você falou, mas a minha dúvida é se há uma tabela que estava no outro banco tablespace system será importada ou não porque esta tablespace já foi criada na instalação do banco 9i.

                                Obrigado.

                                Airton

                                #99229
                                Avatar de CleitonHanzenCleitonHanzen
                                Participante

                                  Os unicos objetos que não são importados são do owner SYS…. 🙂

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