Como atribuir um valor para variável com um resultado de uma select
Bom dia,
Favor como posso declarar uma variável e a mesma assuma o valor de uma consulta (select).
Estou fazendo da seguinte forma.
V_CAPACIDADE := TO_NUMBER(SELECT MIN (CAPACIDADE_ALUNO) FROM
(SELECT S.CAPACIDADE_SALA - COUNT(T.QUANTIDADE_DE_ALUNOS) AS CAPACIDADE_ALUNO
FROM TURMA T INNER JOIN SALA S
ON T.CODIGO_SALA = S.CODIGO_SALA
GROUP BY S.CAPACIDADE_SALA,T.QUANTIDADE_DE_ALUNOS
)A
WHERE CAPACIDADE_ALUNO > 0);
Dessa forma está correta ou há outra técnica que eu poderia utilizar. Porque eu fiquei com dúvida das aspas simples que eu utilizei e quando é executado sem essas aspas ocorre um erro.
Favor como posso declarar uma variável e a mesma assuma o valor de uma consulta (select).
Estou fazendo da seguinte forma.
V_CAPACIDADE := TO_NUMBER(SELECT MIN (CAPACIDADE_ALUNO) FROM
(SELECT S.CAPACIDADE_SALA - COUNT(T.QUANTIDADE_DE_ALUNOS) AS CAPACIDADE_ALUNO
FROM TURMA T INNER JOIN SALA S
ON T.CODIGO_SALA = S.CODIGO_SALA
GROUP BY S.CAPACIDADE_SALA,T.QUANTIDADE_DE_ALUNOS
)A
WHERE CAPACIDADE_ALUNO > 0);
Dessa forma está correta ou há outra técnica que eu poderia utilizar. Porque eu fiquei com dúvida das aspas simples que eu utilizei e quando é executado sem essas aspas ocorre um erro.
Alberto Amaral.
Curtidas 0
Respostas
Marco Pinheiro
02/12/2011
A variavel tem que ser declarada assim:
SELECT MIN (CAPACIDADE_ALUNO) into V_CAPACIDADE
FROM (SELECT S.CAPACIDADE_SALA - COUNT(T.QUANTIDADE_DE_ALUNOS) AS CAPACIDADE_ALUNO
FROM TURMA T INNER JOIN SALA S ON T.CODIGO_SALA = S.CODIGO_SALA
GROUP BY S.CAPACIDADE_SALA,T.QUANTIDADE_DE_ALUNOS)A
WHERE CAPACIDADE_ALUNO > 0
Att.,
Marco.
SELECT MIN (CAPACIDADE_ALUNO) into V_CAPACIDADE
FROM (SELECT S.CAPACIDADE_SALA - COUNT(T.QUANTIDADE_DE_ALUNOS) AS CAPACIDADE_ALUNO
FROM TURMA T INNER JOIN SALA S ON T.CODIGO_SALA = S.CODIGO_SALA
GROUP BY S.CAPACIDADE_SALA,T.QUANTIDADE_DE_ALUNOS)A
WHERE CAPACIDADE_ALUNO > 0
Att.,
Marco.
GOSTEI 0
Alberto Amaral.
02/12/2011
Valeu Marco
Estou com outro problema fui executar a trigger e apareceu o seguinte erro:
ERRO na linha 1:
ORA-06502: PL/SQL: erro numérico ou de valor : erro de conversão de número em carácter
ORA-06512: na SCOTT.PROFESSOR_TURMA, linha 5
ORA-04088: erro durante a execução do trigger SCOTT.PROFESSOR_TURMA
Abraços
Estou com outro problema fui executar a trigger e apareceu o seguinte erro:
ERRO na linha 1:
ORA-06502: PL/SQL: erro numérico ou de valor : erro de conversão de número em carácter
ORA-06512: na SCOTT.PROFESSOR_TURMA, linha 5
ORA-04088: erro durante a execução do trigger SCOTT.PROFESSOR_TURMA
Abraços
GOSTEI 0
Marco Pinheiro
02/12/2011
Talvez você deva converter de TO_NUMBER para TO_CHAR. Quando você faz concatenações o padrão é string.
Veja se tem algum numerico concatenando com string.
Att.,
Marco.
Veja se tem algum numerico concatenando com string.
Att.,
Marco.
GOSTEI 0