Esta página foi revisada para considerar as novas configurações de server do fluig para a atualização 1.6.

Caso possua uma atualização anterior do fluig acesse: CON 084 - Configuração do banco de dados Oracle.

Índice

 

Versões homologadas do Oracle

Para verificar as versões homologadas do Oracle acesse a Matriz de Portabilidade.

 

Configuração do banco

Pré-requisitos

 

Criação do usuário e concessão de privilégios

 

Para a criação de um novo usuário em banco de dados Oracle usamos a instrução CREATE USER, conforme sintaxe abaixo:

CREATE USER userid IDENTIFIED BY password [DEFAULT TABLESPACE tablespace] [TEMPORARY TABLESPACE tablespace_temporaria];

Onde:

  • userid: Nome do usuário que será criado;
  • password: Senha do usuário que será criado;
  • tablespace (opcional): Tablespace padrão onde os objetos do banco de dados serão armazenados. Se essa opção for omitida, o Oracle assume a tablespace SYSTEM padrão;
  • temp_tablespace (opcional): Tablespace padrão onde são armazenados os objetos temporários, como por exemplo tabelas temporárias. Se essa opção for omitida, o Oracle assume um tablespace temporário TEMP.

 

 

Após criado o usuário é necessário conceder os privilégios de sistema (conexão e instruções DLL por exemplo) necessários para ele, conforme sintaxe abaixo:

GRANT CONNECT,RESOURCE TO userid;
GRANT CREATE VIEW TO userid; 
GRANT CREATE TABLE TO userid; 

Onde:

  • userid: Nome do usuário criado anteriormente;


 

Neste momento é necessário executar os procedimentos SQL abaixo com o usuário userid no banco de dados a ser usado para o fluig:

DECLARE
  AUX_USERCONNECTED VARCHAR2(30);
BEGIN
  SELECT SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA')
    INTO AUX_USERCONNECTED
    FROM DUAL;
  IF (AUX_USERCONNECTED <> 'SYS') AND (AUX_USERCONNECTED <> 'SYSTEM') THEN
    EXECUTE IMMEDIATE ('CREATE VIEW ALL_OBJECTS AS' ||
                      ' SELECT * FROM SYS.ALL_OBJECTS WHERE OWNER =' ||
                      ' SYS_CONTEXT(' || CHR(39) || 'USERENV' || CHR(39) || ', ' ||
                      CHR(39) || 'CURRENT_SCHEMA' || CHR(39) || ')');
    EXECUTE IMMEDIATE ('CREATE VIEW ALL_SYNONYMS AS' ||
                      ' SELECT * FROM SYS.ALL_SYNONYMS WHERE OWNER =' ||
                      ' SYS_CONTEXT(' || CHR(39) || 'USERENV' || CHR(39) || ', ' ||
                      CHR(39) || 'CURRENT_SCHEMA' || CHR(39) || ')');
    EXECUTE IMMEDIATE ('CREATE VIEW ALL_SEQUENCES AS' ||
                      ' SELECT * FROM SYS.ALL_SEQUENCES WHERE SEQUENCE_OWNER =' ||
                      ' SYS_CONTEXT(' || CHR(39) || 'USERENV' || CHR(39) || ', ' ||
                      CHR(39) || 'CURRENT_SCHEMA' || CHR(39) || ')');
    EXECUTE IMMEDIATE ('CREATE VIEW ALL_CONSTRAINTS AS' ||
                      ' SELECT * FROM SYS.ALL_CONSTRAINTS WHERE OWNER =' ||
                      ' SYS_CONTEXT(' || CHR(39) || 'USERENV' || CHR(39) || ', ' ||
                      CHR(39) || 'CURRENT_SCHEMA' || CHR(39) || ')');
    EXECUTE IMMEDIATE ('CREATE VIEW ALL_CONS_COLUMNS AS' ||
                      ' SELECT * FROM SYS.ALL_CONS_COLUMNS WHERE OWNER =' ||
                      ' SYS_CONTEXT(' || CHR(39) || 'USERENV' || CHR(39) || ', ' ||
                      CHR(39) || 'CURRENT_SCHEMA' || CHR(39) || ')');
    EXECUTE IMMEDIATE ('CREATE VIEW ALL_INDEXES AS' ||
                      ' SELECT * FROM SYS.ALL_INDEXES WHERE OWNER =' ||
                      ' SYS_CONTEXT(' || CHR(39) || 'USERENV' || CHR(39) || ', ' ||
                      CHR(39) || 'CURRENT_SCHEMA' || CHR(39) || ')');
    EXECUTE IMMEDIATE ('CREATE VIEW ALL_IND_COLUMNS AS' ||
                      ' SELECT * FROM SYS.ALL_IND_COLUMNS WHERE TABLE_OWNER =' ||
                      ' SYS_CONTEXT(' || CHR(39) || 'USERENV' || CHR(39) || ', ' ||
                      CHR(39) || 'CURRENT_SCHEMA' || CHR(39) || ')');
    EXECUTE IMMEDIATE ('CREATE VIEW ALL_TABLES AS' ||
                      ' SELECT * FROM SYS.ALL_TABLES WHERE OWNER =' ||
                      ' SYS_CONTEXT(' || CHR(39) || 'USERENV' || CHR(39) || ', ' ||
                      CHR(39) || 'CURRENT_SCHEMA' || CHR(39) || ')');
    EXECUTE IMMEDIATE ('CREATE VIEW ALL_TAB_COLUMNS AS' ||
                      ' SELECT * FROM SYS.ALL_TAB_COLUMNS WHERE OWNER =' ||
                      ' SYS_CONTEXT(' || CHR(39) || 'USERENV' || CHR(39) || ', ' ||
                      CHR(39) || 'CURRENT_SCHEMA' || CHR(39) || ')');
  END IF;
END;
  • É imprescindível conectar no banco de dados com o usuário userid para a execução dos procedimentos acima, a fim de garantir o isolamento e integridade da operação.
  • O servidor fluig deve estar parado no momento da execução do script.

Oracle 12c

Caso seja utilizado Oracle 12c ou superior é necessário alterar o arquivo [Instalação fluig]\appserver\bin\domain.conf.bat (domain.conf em ambientes Linux) e incluir a seguinte linha:

set "JAVA_OPTS=%JAVA_OPTS% -Dhibernate.dialect=org.hibernate.dialect.Oracle10gDialect"

O NLS (National Language Support) é utilizado para definir datas, números, moeda e configurações de idioma. O NLS_CHARACTERSET para o Fluig é AL32UTF8.