Estrutura inicial, ambiente IA
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
---
|
||||
name: vitruvio-sql-script-case
|
||||
description: "Crie ou ajuste scripts Oracle PL SQL por caso no DavinTI Vitruvio. Use para gerar .sql, .pks ou .pkb com comentario de CASO, convencoes PRC_VTR ou FNC, schema explicito, tratamento de excecoes, consulta segura de metadata e preparo de DDL sem executar nada no banco."
|
||||
argument-hint: "Descreva o caso, o objeto SQL e o resultado esperado."
|
||||
---
|
||||
|
||||
# Script SQL por Caso
|
||||
|
||||
## Quando usar
|
||||
- Criacao ou ajuste de arquivos `.sql`, `.pks` e `.pkb` no padrao DavinTI e Vitruvio.
|
||||
- Demandas que pedem procedure, function, package, query de apoio ou DDL versionado.
|
||||
- Casos em que e necessario consultar metadata ou objetos do banco sem executar mudancas no ambiente.
|
||||
|
||||
## Objetivo
|
||||
Produzir scripts Oracle prontos para revisao e execucao manual, mantendo o historico por caso, convencoes do time e limites seguros de acesso ao banco.
|
||||
|
||||
## Procedimento
|
||||
1. Identifique se a demanda e de consulta, ajuste de logica PL SQL ou geracao de DDL.
|
||||
2. Se faltar contexto de tabela, view, coluna ou schema, consulte metadata apenas com `SELECT`, `DESCRIBE` ou ferramentas equivalentes de inspecao.
|
||||
3. Comece pelo [template base](./assets/caso-template.sql) e troque os placeholders do caso.
|
||||
4. Use schemas explicitos, convencoes `PRC_VTR_*` e `FNC_*`, e mantenha formatacao consistente com o repositorio.
|
||||
5. Prefira `SELECT ... INTO` com `NVL` ou `CASE` em vez de cursores desnecessarios.
|
||||
6. Trate excecoes de forma explicita, incluindo `WHEN NO_DATA_FOUND THEN` quando aplicavel.
|
||||
7. Se a demanda envolver DDL ou alteracao estrutural, gere apenas o arquivo; nao execute no banco.
|
||||
8. Ao concluir, descreva o que precisa de execucao manual e quais validacoes foram feitas por inspecao.
|
||||
|
||||
## Saida esperada
|
||||
- Script Oracle alinhado ao caso e pronto para revisao.
|
||||
- Comentario de historico no padrao do time.
|
||||
- Descricao curta das premissas, da validacao feita e do que depende de execucao manual.
|
||||
|
||||
## Recursos
|
||||
- [Checklist SQL](./references/checklist.md)
|
||||
- [Template base](./assets/caso-template.sql)
|
||||
@@ -0,0 +1,21 @@
|
||||
-- CASO XXX - [usuario] - DD-MM-YYYY - [descricao breve da mudanca]
|
||||
|
||||
CREATE OR REPLACE PROCEDURE VITRUVIO.PRC_VTR_NOME_DA_PROCEDURE (
|
||||
p_chave IN NUMBER,
|
||||
p_saida OUT VARCHAR2
|
||||
) AS
|
||||
v_valor NUMBER;
|
||||
BEGIN
|
||||
SELECT NVL(MAX(campo_exemplo), 0)
|
||||
INTO v_valor
|
||||
FROM VITRUVIO.SUA_TABELA
|
||||
WHERE CHAVE_EXEMPLO = p_chave;
|
||||
|
||||
p_saida := TO_CHAR(v_valor);
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
p_saida := '0';
|
||||
END PRC_VTR_NOME_DA_PROCEDURE;
|
||||
/
|
||||
|
||||
-- Se a demanda envolver DDL, gere em arquivo separado e execute manualmente via DBA ou fluxo aprovado.
|
||||
@@ -0,0 +1,22 @@
|
||||
# Checklist SQL
|
||||
|
||||
## Antes de escrever
|
||||
- Identifique o numero do caso, usuario responsavel e data da alteracao.
|
||||
- Verifique se o objeto ja existe no repositorio para reaproveitar padroes de assinatura e formatacao.
|
||||
- Quando houver duvida de schema, coluna ou tipo, faca apenas inspecao segura de metadata.
|
||||
|
||||
## Convencoes do script
|
||||
- Adicione comentario de historico no formato `-- CASO [numero] - [usuario] - [data] - [descricao]`.
|
||||
- Use `PRC_VTR_*` para procedures e `FNC_*` para functions quando for novo desenvolvimento.
|
||||
- Use schema explicito em tabelas e objetos compartilhados.
|
||||
- Mantenha palavras-chave SQL em maiusculo e identacao compativel com os arquivos existentes.
|
||||
|
||||
## Logica PL SQL
|
||||
- Prefira `SELECT ... INTO` com `NVL` ou `CASE` antes de criar cursores sem necessidade.
|
||||
- Trate `NO_DATA_FOUND` de forma explicita quando o fluxo exigir fallback controlado.
|
||||
- Preencha parametros `OUT` antes de `COMMIT` quando houver esse padrao no objeto.
|
||||
|
||||
## Limites de seguranca
|
||||
- Nao execute `CREATE`, `ALTER`, `DROP`, `TRUNCATE`, `INSERT`, `UPDATE`, `DELETE`, `MERGE`, `GRANT` ou `REVOKE` como parte da analise.
|
||||
- Gere DDL e scripts de mudanca em arquivo para execucao manual posterior.
|
||||
- Se a validacao depender do ambiente, deixe isso explicitado no resultado.
|
||||
Reference in New Issue
Block a user