salve,
preciso fazer um de-para ...tipo:
tenho uma tabela com 10 colunas ...
preciso que a coluna primary key....
receba outros valores ...
assim sera atualizada...
por exemplo, tenho na coluna 1 o valor de 300 que vai passar para a coluna 2, assim a coluna 1 recebera outro valor tipo 350.
teria como alguém me explicar como funciona este tal de "DE-PARA"...
ou me dar uma ajuda se já fizeram este tipo de procedimento...
Grato
Fernando.
DE-PARA
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother,
Qual o critério de alteração deste valor?
Você passa um valor e ele sai alterando as demais linhas?
Caso seja isso, veja este exemplo:
Qual o critério de alteração deste valor?
Você passa um valor e ele sai alterando as demais linhas?
Caso seja isso, veja este exemplo:
CREATE TABLE teste
(id NUMBER,
valor NUMBER(10,3));
INSERT INTO teste VALUES (1, 100);
INSERT INTO teste VALUES (2, 200);
INSERT INTO teste VALUES (3, 300);
INSERT INTO teste VALUES (4, 400);
INSERT INTO teste VALUES (5, 500);
INSERT INTO teste VALUES (6, 600);
SELECT *
FROM teste;
/*
1 100
2 200
3 300
4 400
5 500
6 600
*/
-- Procedure (em bloco anônimo) que altera o valor
-- Esta procedure pode ser de banco tb.
DECLARE
PROCEDURE PRC_CORRIGE_VALORES (P_VALOR_ADICIONAL IN NUMBER)
IS
CURSOR CUR_TESTE
IS
SELECT *
FROM TESTE;
BEGIN
-- Atualiza os valores, adicionando o valor passado por parâmetro
UPDATE TESTE
SET VALOR = VALOR + NVL(P_VALOR_ADICIONAL,0);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
raise_application_error(-20001, 'Erro atualizando valroes: ' || SQLERRM);
END PRC_CORRIGE_VALORES;
BEGIN
PRC_CORRIGE_VALORES(10);
END;
SELECT *
FROM TESTE;
/*
1 110
2 210
3 310
4 410
5 510
6 610
*/
-
- Rank: Programador Júnior
- Mensagens: 15
- Registrado em: Seg, 15 Out 2007 11:00 am
- Localização: São Paulo
então mano...
tenho sobrepor o numero 110 que é PK pelo um numero por ex: 10215
tenho um monitor que seu numero de patrimonio é 11254 ...
e este numero vai ser mudado para por ex: 24587 ...
então esse é o problema sei que terei que desabilitar uma porrada de constraint e tal ....
e o pior é que este numero manda no sistema ....
vou tipo modelar o sistema quase inteiro para modificar todos os numeros de patrinonios que serao sobrepostos.
tenho sobrepor o numero 110 que é PK pelo um numero por ex: 10215
tenho um monitor que seu numero de patrimonio é 11254 ...
e este numero vai ser mudado para por ex: 24587 ...
então esse é o problema sei que terei que desabilitar uma porrada de constraint e tal ....
e o pior é que este numero manda no sistema ....
vou tipo modelar o sistema quase inteiro para modificar todos os numeros de patrinonios que serao sobrepostos.
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Bom companheiro,
Aí já é mais complicado....
Vai ter q percorrer onde esta tua tabela manda FK's e alterar tudo mesmo.
Questão: É necessário mesmo alterar este nro. de PK ?
Aí já é mais complicado....
Vai ter q percorrer onde esta tua tabela manda FK's e alterar tudo mesmo.
Questão: É necessário mesmo alterar este nro. de PK ?
-
- Rank: Programador Júnior
- Mensagens: 15
- Registrado em: Seg, 15 Out 2007 11:00 am
- Localização: São Paulo
então meu velho ....para mim é uma besteira ...eles estam querendo...quase modelar o sistema novamente por causa de uma pkzinha de nada ....mas por causa dela terei que mudar tudo.
É que eles estam atualizando os patrimonios da empresa ...então a etiqueta antiga já era, e sera substituida,antes alterar so esta pk que o sistema inteiro.
[]'s
É que eles estam atualizando os patrimonios da empresa ...então a etiqueta antiga já era, e sera substituida,antes alterar so esta pk que o sistema inteiro.
[]'s
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother,
Boa sorte ai, abaixo segue uma dica de como localizar os filhos da tua tabela:
qualquer coisa, manda ai.
Boa sorte ai, abaixo segue uma dica de como localizar os filhos da tua tabela:
SELECT TPAI.TABLE_NAME TABELA_PAI
, TFILHA.TABLE_NAME TABELA_FILHA
, CFILHA.COLUMN_NAME COLUNA_TABELA_FILHA
FROM SYS.ALL_CONSTRAINTS TPAI
INNER JOIN SYS.ALL_CONSTRAINTS TFILHA ON TPAI.CONSTRAINT_NAME = TFILHA.R_CONSTRAINT_NAME
INNER JOIN SYS.ALL_CONS_COLUMNS CFILHA ON TFILHA.CONSTRAINT_NAME = CFILHA.CONSTRAINT_NAME
WHERE TPAI.CONSTRAINT_TYPE = 'P' -- ( PRIMARY )
AND TPAI.TABLE_NAME = 'T_PAI' -- INFORMAR NOME DA TABELA PAI
ORDER BY TABELA_FILHA, COLUNA_TABELA_FILHA
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes