Oracle/PLSQL: Pegar somente hora de um campo Datetime
select
to_Char(’01/07/2017 08:00:00′, ‘HH24:SS’)
FROM TABELA
Select para pegar a data e hora completa formado brasileiro
select
to_char(sysdate,’dd/mm/yyyy hh24:mi:ss’)
FROM dual
Oracle/PLSQL: Pegar somente hora de um campo Datetime
select
to_Char(’01/07/2017 08:00:00′, ‘HH24:SS’)
FROM TABELA
Select para pegar a data e hora completa formado brasileiro
select
to_char(sysdate,’dd/mm/yyyy hh24:mi:ss’)
FROM dual
Oracle: Directories
Caso precise saber os diretórios que existem no banco, é só executar a query abaixo:
SQL > SELECT * FROM DBA_DIRECTORIES;
Para aprender a criar (directories) acesse o link: http://blog.fabianobento.com.br/2015/01/oracle-directories/
Ao usar o #CSSCAN foi retornado a critica “CSS-00107: Character set migration utility schema not installed”
select * from v$nls_parameters where parameter in (‘NLS_CHARACTERSET’,’NLS_LANGUAGE’);
— ALTER SESSION SET NLS_LANGUAGE = ‘AMERICAN’
— ALTER SESSION SET NLS_LANGUAGE = ‘BRAZILIAN PORTUGUESE’
–WE8ISO8859P1
–WE8MSWIN1252
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | [oracle@srvrussia ~]$ csscan Character Set Scanner v2.2 : Release 11.2.0.1.0 - Production on Sat Nov 26 09:58 :21 2016 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. Username: system Password: Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options CSS-00107: Character set migration utility schema not installed Scanner terminated unsuccessfully. |
Para resolver é simples, basta conectar com usuário SYS, localizar o script (csminst.sql) conforme o diretório de instalação do Oracle e executar.
1 | SQL> @/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/csminst.sql |
select
‘Empresa_’|| ‘VAR’||’_’|| to_char(sysdate, ‘yyyy’)||to_char(sysdate, ‘mm’)||to_char(sysdate, ‘dd’)
||to_char(sysdate, ‘HH24’)||to_char(sysdate, ‘MI’)||to_char(sysdate, ‘SS’)
||’.txt’
from dual
PL/SQL – Retirar quebra de linha de uma string
REPLACE(TRIM(variavel),CHR(10),' ');
DROP TRIGGER bento.nome_trigger
Oracle PL/SQL MAX Function
Exemplo prático;
Criando a tabela de funcionário.
<pre lang="sql" escaped="true">
create table FUNCIONARIO
(
NM_FUNCIONARIO VARCHAR2(150),
NR_CHAPA NUMBER,
DT_CONTRATACAO DATE
)
</pre>
Exemplo de uso da função max para obter o maior número de chapa.
Tabela onde está os valores salários e competências
<pre lang=’sql’ line=’1′>
create table BENTO.FUNC_SALARIO
(
DT_COMPETENCIA DATE,
DT_INICIO_VIGENCIA DATE,
DT_FIM_VIGENCIA DATE,
NR_CHAPA NUMBER,
VL_SALARIO NUMBER(15,2)
)
</pre>
Imaginando uma situação onde é necessário demonstrar o salário em vigência atual.
<pre lang=’sql’ line=’1′>
select
a.NM_FUNCIONARIO
, a.nr_chapa
, b.VL_SALARIO
from
bento.funcionario a
, bento.func_salario b
where a.nr_chapa = b.NR_CHAPA
and b.dt_competencia = ( select max(c.DT_COMPETENCIA)
from bento.func_salario c
where c.NR_CHAPA = b.nr_chapa
)
</pre>
Situação onde é necessário demonstrar o valor de salário atual e o salário anterior.
select (‘Cidade, ‘|| to_char(TO_Date(SYSDATE),’dd ” de ” FMMONTH ” de ” YYYY’,’nls_date_language=portuguese’))data from dual
Comando para verificar classe DbwsProxy em banco Oracle
select status from all_objects where dbms_java.longname(object_name)=’oracle/jpub/runtime/dbws/DbwsProxy’;
OVER (PARTITION BY
Exemplo prático:
Vamos criar uma tabela para os testes e exemplos de demonstração
create table
Exemplos;
row_number()
Max()
min()
rank
http://www.devmedia.com.br/funcoes-analiticas-em-oracle/3707