Colunas novas

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
rtot
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Qui, 09 Ago 2007 5:27 pm
Localização: São Paulo - sp

Olá pessoal.

Eu criei dois novos campos em uma tabela que já existe, porém as duas colunas tem que estar no "meio" da tabela e não no final (no caso o alter table cria no final da tabela).

Então eu criei uma tabela "temporaria" com a estrutura antiga e migrei os dados da tabela para a tabela "temporaria",

Ai criei a tabela com a estrutura nova (com as duas colunas no meio), e quando faço insert into select (colunas) from tabela "temporária", dá erro de not enough values.

O que devo fazer neste caso ??
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

E ai beleza??

da uma olhada se a ordem dos campos da tabela do insert bate com a ordem da tabela do select, como na tabela nova tem os 2 campos no meio dela, o select q você vai fazer na antiga não pode ser usando *, nesse caso você tem q informar todos os campos pra q a ordem dos campos sejam a mesma.
verifique tb se a quantidade de campos das 2 tabelas são iguais tb.!

[]'s
rtot
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Qui, 09 Ago 2007 5:27 pm
Localização: São Paulo - sp

Segue o trecho do script citado

Selecionar tudo

CREATE TABLE CARTEIRA1 ( 
	AUTH VARCHAR2(1) DEFAULT '0',
	USU_AUT VARCHAR(255),
	COD_AUT NUMBER(10),
	OPERACAO NUMBER(10),
	DT_ATU DATE,
	COD_CART NUMBER(10) NOT NULL,    /* Codigo da Carteira */
	COD_AGEN NUMBER(10),    /* Codigo do Agente */
	DT_INI DATE NOT NULL,    /* Data de inicio do relacionamento do cliente. */
	DT_ENC DATE,    /* Data de encerramento da carteira ou fundo. Campo não editável. */
	COD_TP_CART NUMBER(10) NOT NULL,    /* Código do Tipo de Carteira */
	COD_ISIN VARCHAR2(12),    /* Código ISIN do fundo. Este campo estará habilitado caso a flag "Fundo regido pala IN CVM 409" no tipo de carteira esteja ligada. */
	SOCIO_BMF VARCHAR2(1) NOT NULL,    /* Indica se o beneficiário da carteira;fundo é sócio da BMF para que usufrua dos descontos concedidos pela BMF nos valores da nota de corretagem. O percentual do desconto é informado em cadastro específico de taxa de corretagem. */
	VL_COTA_INI NUMBER(25,10),    /* Valor que define a cota inicial da carteira;fundo. */
	COD_ADM NUMBER(10) ,    /* Codigo do Administrador. */
	COD_GER_ADM NUMBER(10) ,    /* Codigo do Gerente */
	COD_GESTOR NUMBER(10) ,    /* Codigo do Gestor */
	COD_GER_GESTOR NUMBER(10) ,    /* Codigo do Gerente */
	COD_CUSTOD NUMBER(10) ,    /* Codigo do Custodiante. */
	COD_GER_CUSTOD NUMBER(10) ,    /* Codigo do Gerente */
	HIERARQUIA VARCHAR2(1),    /* ComboBox com as opções:Nenhuma - Nenhum tratamento deve ser feito.Carteira Mãe - Indica que se trata de uma carteira Mãe. As regras de negócio para este caso estarão descritas em documento específico.Carteira Filha - Indica que se trata de uma carteira filha. Neste caso o campo abaixo deverá estar habilitado para preenchimento por parte do usuário.. */
	COD_CART_MAE NUMBER(10),    /* Codigo da Carteira */
	CUSTODIA VARCHAR2(1),    /* Flag que indica se o sistema irá tratar a custódia dessa carteira. Opções: Interna ou Externa */
	CONTROLADORIA VARCHAR2(1),    /* Identifica se a carteira terá a custódia controlada pelo sistema, ou por outra entidade externa. Opções: Interna ou Externa */
	ST VARCHAR2(3),    /* Status atual da carteira, responsável pelo controle de informações processadas pelo sistema· Em paralelo - As informações processadas não são enviadas a nenhum órgão externo ou caixa· Em produção - As informações processadas têm integração normal com o caixa, contábil e interfaces externos.· Encerrada - As informações ficam disponíveis apenas para consulta e a Carteira não aparece nas listas de seleção de empresas para operações no sistema. Obs. O processo de encerramento da carteira será tratado em documento específico, portanto, não será possível a gravação desse atributo caso seja selecionado pelo usuário. */
	DT_PRODUC DATE,    /* Data a partir da qual a carteira estará em produção. Este campo deverá ser habilitado quando o campo status for alterado para "produção". Quando a carteira estiver com a data de movimento igual ou superior à data indicada neste campo, o sistema deverá adotar todos os procedimentos que serão definidos nas especificações do sistema que fizerem referência ao status e data de produção. */
	COD_PARAM_CART NUMBER(10) NOT NULL,    /* Código do parametro da carteira. */
	COD_TP_TRIBUT NUMBER(10) NOT NULL,    /* Código do tipo de tributação. */
	INVEST_QUALIF VARCHAR2(1),    /* Indica se a carteira é um investidor qualificado. Os tratamentos em relação a este campo estarão descritos em especificações posteriores. */
	DT_CART DATE,
	ST_PROC_CONTROLADORIA NUMBER(1),
	DT_PROC_CONTROLADORIA DATE,
	ST_PROC_CUSTODIA NUMBER(1),
	DT_PROC_CUSTODIA DATE,
	EM_REPROC CHAR(1),
	COD_PRACA NUMBER(10),
	COD_CLASSIFICACAO_ANBID  NUMBER(10),    /* Codigo da classificação ANBID do fundo. */
	DT_CONTAB_ENV DATE
)  ;

INSERT INTO CARTEIRA1 
SELECT * FROM CARTEIRA ;

DROP TABLE CARTEIRA CASCADE CONSTRAINTS ;

CREATE TABLE CARTEIRA ( 
	AUTH VARCHAR2(1) DEFAULT '0',
	USU_AUT VARCHAR(255),
	COD_AUT NUMBER(10),
	OPERACAO NUMBER(10),
	DT_ATU DATE,
	COD_CART NUMBER(10) NOT NULL,    /* Codigo da Carteira */
	COD_AGEN NUMBER(10),    /* Codigo do Agente */
	DT_INI DATE NOT NULL,    /* Data de inicio do relacionamento do cliente. */
	DT_ENC DATE,    /* Data de encerramento da carteira ou fundo. Campo não editável. */
	COD_TP_CART NUMBER(10) NOT NULL,    /* Código do Tipo de Carteira */
	COD_ISIN VARCHAR2(12),    /* Código ISIN do fundo. Este campo estará habilitado caso a flag "Fundo regido pala IN CVM 409" no tipo de carteira esteja ligada. */
	SOCIO_BMF VARCHAR2(1) NOT NULL,    /* Indica se o beneficiário da carteira;fundo é sócio da BMF para que usufrua dos descontos concedidos pela BMF nos valores da nota de corretagem. O percentual do desconto é informado em cadastro específico de taxa de corretagem. */
	CONTAB_ATIVO VARCHAR2(1),    /* Indica se o beneficiário da carteira;fundo é sócio da BMF para que usufrua dos descontos concedidos pela BMF nos valores da nota de corretagem. O percentual do desconto é informado em cadastro específico de taxa de corretagem. */
	TP_CALC_PATR NUMBER(1),   /* Indica se o beneficiário da carteira;fundo é sócio da BMF para que usufrua dos descontos concedidos pela BMF nos valores da nota de corretagem. O percentual do desconto é informado em cadastro específico de taxa de corretagem. */
	VL_COTA_INI NUMBER(25,10),    /* Valor que define a cota inicial da carteira;fundo. */
	COD_ADM NUMBER(10) ,    /* Codigo do Administrador. */
	COD_GER_ADM NUMBER(10) ,    /* Codigo do Gerente */
	COD_GESTOR NUMBER(10) ,    /* Codigo do Gestor */
	COD_GER_GESTOR NUMBER(10) ,    /* Codigo do Gerente */
	COD_CUSTOD NUMBER(10) ,    /* Codigo do Custodiante. */
	COD_GER_CUSTOD NUMBER(10) ,    /* Codigo do Gerente */
	HIERARQUIA VARCHAR2(1),    /* ComboBox com as opções:Nenhuma - Nenhum tratamento deve ser feito.Carteira Mãe - Indica que se trata de uma carteira Mãe. As regras de negócio para este caso estarão descritas em documento específico.Carteira Filha - Indica que se trata de uma carteira filha. Neste caso o campo abaixo deverá estar habilitado para preenchimento por parte do usuário.. */
	COD_CART_MAE NUMBER(10),    /* Codigo da Carteira */
	CUSTODIA VARCHAR2(1),    /* Flag que indica se o sistema irá tratar a custódia dessa carteira. Opções: Interna ou Externa */
	CONTROLADORIA VARCHAR2(1),    /* Identifica se a carteira terá a custódia controlada pelo sistema, ou por outra entidade externa. Opções: Interna ou Externa */
	ST VARCHAR2(3),    /* Status atual da carteira, responsável pelo controle de informações processadas pelo sistema· Em paralelo - As informações processadas não são enviadas a nenhum órgão externo ou caixa· Em produção - As informações processadas têm integração normal com o caixa, contábil e interfaces externos.· Encerrada - As informações ficam disponíveis apenas para consulta e a Carteira não aparece nas listas de seleção de empresas para operações no sistema. Obs. O processo de encerramento da carteira será tratado em documento específico, portanto, não será possível a gravação desse atributo caso seja selecionado pelo usuário. */
	DT_PRODUC DATE,    /* Data a partir da qual a carteira estará em produção. Este campo deverá ser habilitado quando o campo status for alterado para "produção". Quando a carteira estiver com a data de movimento igual ou superior à data indicada neste campo, o sistema deverá adotar todos os procedimentos que serão definidos nas especificações do sistema que fizerem referência ao status e data de produção. */
	COD_PARAM_CART NUMBER(10) NOT NULL,    /* Código do parametro da carteira. */
	COD_TP_TRIBUT NUMBER(10) NOT NULL,    /* Código do tipo de tributação. */
	INVEST_QUALIF VARCHAR2(1),    /* Indica se a carteira é um investidor qualificado. Os tratamentos em relação a este campo estarão descritos em especificações posteriores. */
	DT_CART DATE,
	ST_PROC_CONTROLADORIA NUMBER(1),
	DT_PROC_CONTROLADORIA DATE,
	ST_PROC_CUSTODIA NUMBER(1),
	DT_PROC_CUSTODIA DATE,
	EM_REPROC CHAR(1),
	COD_PRACA NUMBER(10),
	COD_CLASSIFICACAO_ANBID  NUMBER(10),    /* Codigo da classificação ANBID do fundo. */
	DT_CONTAB_ENV DATE
)   ;

INSERT INTO CARTEIRA
SELECT AUTH  ,
	USU_AUT ,
	COD_AUT ,
	OPERACAO 
	DT_ATU ,
	COD_CART  ,    
	COD_AGEN ,    
	DT_INI  ,    
	DT_ENC ,    
	COD_TP_CART  ,    
	COD_ISIN ,    
	SOCIO_BMF  ,
        NULL    as CONTAB_ATIVO  ,
        NULL    AS TP_CALC_PATR  ,
	VL_COTA_INI , 
	COD_ADM  ,    
	COD_GER_ADM  ,    
	COD_GESTOR  ,    
	COD_GER_GESTOR  ,    
	COD_CUSTOD  ,    
	COD_GER_CUSTOD  ,    
	HIERARQUIA ,    
	COD_CART_MAE ,    
	CUSTODIA ,    
	CONTROLADORIA ,    
	ST ,    
	DT_PRODUC ,    
	COD_PARAM_CART  ,    
	COD_TP_TRIBUT  ,    
	INVEST_QUALIF ,    
	DT_CART ,
	ST_PROC_CONTROLADORIA ,
	DT_PROC_CONTROLADORIA ,
	ST_PROC_CUSTODIA ,
	DT_PROC_CUSTODIA ,
	EM_REPROC ,
	COD_PRACA ,
	COD_CLASSIFICACAO_ANBID  ,    
	DT_CONTAB_ENV ,
       
FROM CARTEIRA1 ;
Repare que no ultimo insert eu coloquei como null para inserir valor null nas duas colunas novas.
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

E ai amigo, beleza??

o ultimo insert esta com 2 erros, está faltando a ,(virgula) apos o nome do campo operacao, o outro é a ,(virgula) que está após o campo dt_contab_env (ultimo campo)..

tenta ai..
[]'s
rtot
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Qui, 09 Ago 2007 5:27 pm
Localização: São Paulo - sp

Vlw pela ajuda, muito obrigado
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 17 visitantes