- Este tópico contém 10 respostas, 5 vozes e foi atualizado pela última vez 16 anos, 2 meses atrás por
hudsona.
-
AutorPosts
-
15 de janeiro de 2010 às 7:53 pm #92107
Girino
ParticipanteBoa Tarde..!! 8)
Tenho uma tabela com 460 colunas no Oracle e tenho várias colunas que não estão com dados preenchidos. 🙄
Tem como eu fazer um select nesta tabela e ele me retornar apenas as colunas que tem valor?
Caso contrário vou ter que percorrer a tabela inteira coluna a coluna.Isso é possível?? 💡
Muito Obrigado..!!
Renato 😀
15 de janeiro de 2010 às 9:08 pm #92110Ishii
ParticipanteOlá,
Não entendi direito… se a tabela XPTO tem as colunas A1,A2,A3,B1,B2,B3, etc. você queria que o result set da query retornasse:
A1,B2 pois tem dados nessas colunas na linha 1
C2,F4,B3 pois tem dados nessas colunas na linha 2É isso mesmo? Se for isso como ficaria o select ?
select (if A1 is not null then show A1), etc from XPTO…?????
Ou como ficaria as colunas? Sem formatação definida?
Brincadeiras a parte… o Structured Query Language ou SQL ou traduzindo, Linguagem de Consulta Estruturada parte do princípio que há uma estrutura para a consulta e pelo que você está pedindo (se é isso mesmo que eu entendi) não há exatamente uma estrutura e sim uma série de “condições” para a estrutura quando essas condições deveria ser para o resultado da Consulta…
Mas se não for isso, por favor esclareça um pouco mais.
🙂 Ishii
15 de janeiro de 2010 às 9:46 pm #92112Girino
ParticipanteEu queria uma query que me retornasse apenas os colunas que tivessem algum valor, pois são muitas e tem várias que estão sem dados.
Quero somente as colunas que tem dados.
EX:
Tabela: TESTE com as colunas A1,A2,A3,B1,B2,B3
As colunas A3 e B2 não tem dados, logo o meu select retornaria:
SELECT *FROM TESTE
A1,A2,B1,B3Espero que tenha conseguido explicar..!! 😀
Renato 8)
15 de janeiro de 2010 às 10:07 pm #92113Ishii
ParticipanteOlá,
Acho eu é que não fui claro então… 😛
Na Linguagem SQL (Seja ela de qualquer RDBMS) isso não é possível….
[]s Ishii
15 de janeiro de 2010 às 10:12 pm #92115Girino
ParticipanteOK..!! 8)
Obrigado..!!
Renato
15 de janeiro de 2010 às 10:12 pm #92116hudsona
ParticipanteE eu que reclamo da modelagem feita no sistema da minha empresa…..
15 de janeiro de 2010 às 10:21 pm #92117Leonardo Litz
ParticipanteGirino, execute o seguinte script abaixo:
declare
v_select dbms_sql.Varchar2_Table;
v_table varchar2(30) := '&table;
c number := 0;
begindbms_output.put_line(' select ');
for dd in (select C.*
from user_tab_cols c
where c.table_name = v_table) loopc := c + 1;
v_select(c) := '||case when '||dd.column_name||' is not null then '','||dd.column_name||''' else null end';
end loop;
for dd in 1..c loop
if(dd = 1)then
dbms_output.put_line(substr(v_select(dd),3));
else
dbms_output.put_line(v_select(dd));
end if;end loop;
dbms_output.put_line(' from '||v_table);
end;
Irá montar uma query da forma que você exemplificou, pegue esta query e execute, que retornará o dados da forma que vc necessita!
Como vc tem 460 colunas, vc vai ter que extender bastante o buffer de saida do dbms_output.
Grato Leonardo Litz
15 de janeiro de 2010 às 11:11 pm #92120Girino
ParticipanteOlá Lits..!! 8)
No Select que gerou eu dei um distinct e retornou 9 linhas contendo array de string um pouco diferente para cada uma delas.
Nâo teria que retornar apenas uma linha?
Posso pegar o maior resultado do array 💡
1 ,PRECIFICESTRANGEIRA,CODPROD,DESCRICAO,EMBALAGEM,UNIDADE,PESOLIQ,CODEPTO,CODSEC,QTUNIT,CODFORNEC,DTCADASTRO,VOLUME,CODAUXILIAR,QTUNITCX,REVENDA,CODPRODPRINC,OBS2,UNIDADEMASTER,LARGURAM3,ALTURAM3,COMPRIMENTOM3,PRECOFIXO,PISCOFINSRETIDO,PERCCOMMOT,COMISSAOFIXA,USACLASSIFICACAO,IMUNETRIB,PESOVARIAVEL,COMPRACONSIGNADO,CONFERENOCHECKOUT,PERCPERDAKG,APROVEITACREDICMS,APROVEITACREDPISCOFINS,VLICMSANTECIPADO,VERSANALISE,CONTLOGANALISE,CONSIDERARICMSANTECIPCUSTO,CALCCREDIPI,ENVIARFORCAVENDAS,UTILIZAPRECOMAXCONSUMIDOR,DESTAQUEFICHATECNICA,EX_DOSEAMENTO,EX_IMPUREZA,PESOLIQMASTER,PCKROTATIVO,PRAZOEXPURGO,FRACIONADO,CODNESTLETERCEIROS,CONFAZ,USACROSS,USAWMS,UTILIZARVASILHAME,NUMSEQATU,TIPOEMBALAGE,TIPOCARGA,ESPECIFICOATIVIDADEPR,TIPOCOMISSAO,RESTRICAOTRANSP,VALIDARLOTE,ISENTOREGMS,ESTOQUEPORLOTE,CODAUXILIAR2,PASSELIVRE,MULTIPLO,TIPOCALCST,AUTORIZATIPO4,LARGURAARM,COMPRIMENTOARM,ALTURAARM,TIPOARM,EMBALAGEMMASTER,USAALIQCREDICMSDIFER,PSICOTROPICO,MEDICAMENTOHOSPITALAR,SOMENTETV3,FRACAOSEPARACAO,TIPORESTRICAOMED,FRETEESPECIAL,PESOBRUTOMASTER
2 ,PRECIFICESTRANGEIRA,CODPROD,DESCRICAO,EMBALAGEM,UNIDADE,PESOLIQ,CODEPTO,CODSEC,QTUNIT,CODFORNEC,DTCADASTRO,VOLUME,CODAUXILIAR,QTUNITCX,REVENDA,CODPRODPRINC,OBS2,UNIDADEMASTER,LARGURAM3,ALTURAM3,COMPRIMENTOM3,PRECOFIXO,PISCOFINSRETIDO,PERCCOMMOT,COMISSAOFIXA,USACLASSIFICACAO,IMUNETRIB,PESOVARIAVEL,COMPRACONSIGNADO,CONFERENOCHECKOUT,PERCPERDAKG,APROVEITACREDICMS,APROVEITACREDPISCOFINS,VLICMSANTECIPADO,VERSANALISE,CONTLOGANALISE,CONSIDERARICMSANTECIPCUSTO,CALCCREDIPI,ENVIARFORCAVENDAS,UTILIZAPRECOMAXCONSUMIDOR,DESTAQUEFICHATECNICA,EX_DOSEAMENTO,EX_IMPUREZA,PESOLIQMASTER,PCKROTATIVO,PRAZOEXPURGO,FRACIONADO,CODNESTLETERCEIROS,CONFAZ,USACROSS,USAWMS,UTILIZARVASILHAME,NUMSEQATU,TIPOEMBALAGE,TIPOCARGA,ESPECIFICOATIVIDADEPR,TIPOCOMISSAO,RESTRICAOTRANSP,VALIDARLOTE,ISENTOREGMS,CODAUXILIAR2,PASSELIVRE,MULTIPLO,TIPOCALCST,AUTORIZATIPO4,LARGURAARM,COMPRIMENTOARM,ALTURAARM,TIPOARM,EMBALAGEMMASTER,USAALIQCREDICMSDIFER,PSICOTROPICO,MEDICAMENTOHOSPITALAR,SOMENTETV3,FRACAOSEPARACAO,TIPORESTRICAOMED,FRETEESPECIAL,PESOBRUTOMASTER
3 ,PRECIFICESTRANGEIRA,CODPROD,DESCRICAO,EMBALAGEM,UNIDADE,PESOLIQ,PESOBRUTO,CODEPTO,CODSEC,QTUNIT,CODFORNEC,DTCADASTRO,VOLUME,CODAUXILIAR,QTUNITCX,REVENDA,CODPRODPRINC,OBS2,UNIDADEMASTER,LARGURAM3,ALTURAM3,COMPRIMENTOM3,CODFAB,PRECOFIXO,PISCOFINSRETIDO,PERCCOMMOT,COMISSAOFIXA,USACLASSIFICACAO,IMUNETRIB,PESOVARIAVEL,COMPRACONSIGNADO,CONFERENOCHECKOUT,PERCPERDAKG,APROVEITACREDICMS,APROVEITACREDPISCOFINS,VLICMSANTECIPADO,VERSANALISE,CONTLOGANALISE,CONSIDERARICMSANTECIPCUSTO,CALCCREDIPI,ENVIARFORCAVENDAS,UTILIZAPRECOMAXCONSUMIDOR,DESTAQUEFICHATECNICA,EX_DOSEAMENTO,EX_IMPUREZA,PESOLIQMASTER,PCKROTATIVO,PRAZOEXPURGO,FRACIONADO,CODNESTLETERCEIROS,CONFAZ,USACROSS,USAWMS,UTILIZARVASILHAME,NUMSEQATU,TIPOEMBALAGE,TIPOCARGA,ESPECIFICOATIVIDADEPR,TIPOCOMISSAO,RESTRICAOTRANSP,VALIDARLOTE,ISENTOREGMS,ESTOQUEPORLOTE,CODAUXILIAR2,PASSELIVRE,MULTIPLO,TIPOCALCST,AUTORIZATIPO4,LARGURAARM,COMPRIMENTOARM,ALTURAARM,VOLUMEARM,TIPOARM,EMBALAGEMMASTER,USAALIQCREDICMSDIFER,PSICOTROPICO,MEDICAMENTOHOSPITALAR,SOMENTETV3,FRACAOSEPARACAO,VOLUMEREC,TIPORESTRICAOMED,FRETEESPECIAL,PESOBRUTOMASTER
4 ,PRECIFICESTRANGEIRA,CODPROD,DESCRICAO,EMBALAGEM,UNIDADE,PESOLIQ,PESOBRUTO,CODEPTO,CODSEC,QTUNIT,CODFORNEC,DTCADASTRO,VOLUME,CODAUXILIAR,QTUNITCX,REVENDA,CODPRODPRINC,OBS2,UNIDADEMASTER,LARGURAM3,ALTURAM3,COMPRIMENTOM3,PRECOFIXO,PISCOFINSRETIDO,PERCCOMMOT,COMISSAOFIXA,USACLASSIFICACAO,IMUNETRIB,PESOVARIAVEL,COMPRACONSIGNADO,CONFERENOCHECKOUT,PERCPERDAKG,APROVEITACREDICMS,APROVEITACREDPISCOFINS,VLICMSANTECIPADO,VERSANALISE,CONTLOGANALISE,CONSIDERARICMSANTECIPCUSTO,CALCCREDIPI,ENVIARFORCAVENDAS,UTILIZAPRECOMAXCONSUMIDOR,DESTAQUEFICHATECNICA,EX_DOSEAMENTO,EX_IMPUREZA,PESOLIQMASTER,PCKROTATIVO,PRAZOEXPURGO,FRACIONADO,CODNESTLETERCEIROS,CONFAZ,USACROSS,USAWMS,UTILIZARVASILHAME,NUMSEQATU,TIPOEMBALAGE,TIPOCARGA,ESPECIFICOATIVIDADEPR,TIPOCOMISSAO,RESTRICAOTRANSP,VALIDARLOTE,ISENTOREGMS,CODAUXILIAR2,PASSELIVRE,MULTIPLO,TIPOCALCST,AUTORIZATIPO4,LARGURAARM,COMPRIMENTOARM,ALTURAARM,TIPOARM,EMBALAGEMMASTER,USAALIQCREDICMSDIFER,PSICOTROPICO,MEDICAMENTOHOSPITALAR,SOMENTETV3,FRACAOSEPARACAO,TIPORESTRICAOMED,FRETEESPECIAL,PESOBRUTOMASTER
5 ,PRECIFICESTRANGEIRA,CODPROD,DESCRICAO,EMBALAGEM,UNIDADE,PESOLIQ,CODEPTO,CODSEC,QTUNIT,CODFORNEC,DTCADASTRO,VOLUME,CODAUXILIAR,QTUNITCX,REVENDA,CODPRODPRINC,OBS2,UNIDADEMASTER,LARGURAM3,ALTURAM3,COMPRIMENTOM3,CODFAB,PRECOFIXO,PISCOFINSRETIDO,PERCCOMMOT,COMISSAOFIXA,USACLASSIFICACAO,IMUNETRIB,PESOVARIAVEL,COMPRACONSIGNADO,CONFERENOCHECKOUT,PERCPERDAKG,APROVEITACREDICMS,APROVEITACREDPISCOFINS,VLICMSANTECIPADO,VERSANALISE,CONTLOGANALISE,CONSIDERARICMSANTECIPCUSTO,CALCCREDIPI,ENVIARFORCAVENDAS,UTILIZAPRECOMAXCONSUMIDOR,DESTAQUEFICHATECNICA,EX_DOSEAMENTO,EX_IMPUREZA,PESOLIQMASTER,PCKROTATIVO,PRAZOEXPURGO,FRACIONADO,CODNESTLETERCEIROS,CONFAZ,USACROSS,USAWMS,UTILIZARVASILHAME,NUMSEQATU,TIPOEMBALAGE,TIPOCARGA,ESPECIFICOATIVIDADEPR,TIPOCOMISSAO,RESTRICAOTRANSP,VALIDARLOTE,ISENTOREGMS,ESTOQUEPORLOTE,CODAUXILIAR2,PASSELIVRE,MULTIPLO,TIPOCALCST,AUTORIZATIPO4,LARGURAARM,COMPRIMENTOARM,ALTURAARM,VOLUMEARM,TIPOARM,EMBALAGEMMASTER,USAALIQCREDICMSDIFER,PSICOTROPICO,MEDICAMENTOHOSPITALAR,SOMENTETV3,FRACAOSEPARACAO,VOLUMEREC,TIPORESTRICAOMED,FRETEESPECIAL,PESOBRUTOMASTER
6 ,PRECIFICESTRANGEIRA,CODPROD,DESCRICAO,EMBALAGEM,UNIDADE,PESOLIQ,PESOBRUTO,CODEPTO,CODSEC,QTUNIT,CODFORNEC,DTCADASTRO,VOLUME,CODAUXILIAR,QTUNITCX,REVENDA,CODPRODPRINC,OBS2,UNIDADEMASTER,LARGURAM3,ALTURAM3,COMPRIMENTOM3,PRECOFIXO,PISCOFINSRETIDO,PERCCOMMOT,COMISSAOFIXA,USACLASSIFICACAO,IMUNETRIB,PESOVARIAVEL,COMPRACONSIGNADO,CONFERENOCHECKOUT,PERCPERDAKG,APROVEITACREDICMS,APROVEITACREDPISCOFINS,VLICMSANTECIPADO,VERSANALISE,CONTLOGANALISE,CONSIDERARICMSANTECIPCUSTO,CALCCREDIPI,ENVIARFORCAVENDAS,UTILIZAPRECOMAXCONSUMIDOR,DESTAQUEFICHATECNICA,EX_DOSEAMENTO,EX_IMPUREZA,PESOLIQMASTER,PCKROTATIVO,PRAZOEXPURGO,FRACIONADO,CODNESTLETERCEIROS,CONFAZ,USACROSS,USAWMS,UTILIZARVASILHAME,NUMSEQATU,TIPOEMBALAGE,TIPOCARGA,ESPECIFICOATIVIDADEPR,TIPOCOMISSAO,RESTRICAOTRANSP,VALIDARLOTE,ISENTOREGMS,ESTOQUEPORLOTE,CODAUXILIAR2,PASSELIVRE,MULTIPLO,TIPOCALCST,AUTORIZATIPO4,LARGURAARM,COMPRIMENTOARM,ALTURAARM,VOLUMEARM,TIPOARM,EMBALAGEMMASTER,USAALIQCREDICMSDIFER,PSICOTROPICO,MEDICAMENTOHOSPITALAR,SOMENTETV3,FRACAOSEPARACAO,VOLUMEREC,TIPORESTRICAOMED,FRETEESPECIAL,PESOBRUTOMASTER
7 ,PRECIFICESTRANGEIRA,CODPROD,DESCRICAO,EMBALAGEM,UNIDADE,PESOLIQ,PESOBRUTO,CODEPTO,CODSEC,QTUNIT,CODFORNEC,DTCADASTRO,VOLUME,CODAUXILIAR,QTUNITCX,REVENDA,CODPRODPRINC,OBS2,UNIDADEMASTER,LARGURAM3,ALTURAM3,COMPRIMENTOM3,PRECOFIXO,PISCOFINSRETIDO,PERCCOMMOT,COMISSAOFIXA,USACLASSIFICACAO,IMUNETRIB,PESOVARIAVEL,COMPRACONSIGNADO,CONFERENOCHECKOUT,PERCPERDAKG,APROVEITACREDICMS,APROVEITACREDPISCOFINS,VLICMSANTECIPADO,VERSANALISE,CONTLOGANALISE,CONSIDERARICMSANTECIPCUSTO,CALCCREDIPI,ENVIARFORCAVENDAS,UTILIZAPRECOMAXCONSUMIDOR,DESTAQUEFICHATECNICA,EX_DOSEAMENTO,EX_IMPUREZA,PESOLIQMASTER,PCKROTATIVO,PRAZOEXPURGO,FRACIONADO,CODNESTLETERCEIROS,CONFAZ,USACROSS,USAWMS,UTILIZARVASILHAME,NUMSEQATU,TIPOEMBALAGE,TIPOCARGA,ESPECIFICOATIVIDADEPR,TIPOCOMISSAO,RESTRICAOTRANSP,VALIDARLOTE,ISENTOREGMS,ESTOQUEPORLOTE,CODAUXILIAR2,PASSELIVRE,MULTIPLO,TIPOCALCST,AUTORIZATIPO4,LARGURAARM,COMPRIMENTOARM,ALTURAARM,TIPOARM,EMBALAGEMMASTER,USAALIQCREDICMSDIFER,PSICOTROPICO,MEDICAMENTOHOSPITALAR,SOMENTETV3,FRACAOSEPARACAO,TIPORESTRICAOMED,FRETEESPECIAL,PESOBRUTOMASTER
8 ,PRECIFICESTRANGEIRA,CODPROD,DESCRICAO,EMBALAGEM,UNIDADE,PESOLIQ,CODEPTO,CODSEC,QTUNIT,CODFORNEC,DTCADASTRO,VOLUME,CODAUXILIAR,QTUNITCX,REVENDA,CODPRODPRINC,OBS2,UNIDADEMASTER,LARGURAM3,ALTURAM3,COMPRIMENTOM3,PRECOFIXO,PISCOFINSRETIDO,PERCCOMMOT,COMISSAOFIXA,USACLASSIFICACAO,IMUNETRIB,PESOVARIAVEL,COMPRACONSIGNADO,CONFERENOCHECKOUT,PERCPERDAKG,APROVEITACREDICMS,APROVEITACREDPISCOFINS,VLICMSANTECIPADO,VERSANALISE,CONTLOGANALISE,CONSIDERARICMSANTECIPCUSTO,CALCCREDIPI,ENVIARFORCAVENDAS,UTILIZAPRECOMAXCONSUMIDOR,DESTAQUEFICHATECNICA,EX_DOSEAMENTO,EX_IMPUREZA,PESOLIQMASTER,PCKROTATIVO,PRAZOEXPURGO,FRACIONADO,CODNESTLETERCEIROS,CONFAZ,USACROSS,USAWMS,UTILIZARVASILHAME,NUMSEQATU,TIPOEMBALAGE,TIPOCARGA,ESPECIFICOATIVIDADEPR,TIPOCOMISSAO,RESTRICAOTRANSP,VALIDARLOTE,ISENTOREGMS,ESTOQUEPORLOTE,CODAUXILIAR2,PASSELIVRE,MULTIPLO,TIPOCALCST,AUTORIZATIPO4,LARGURAARM,COMPRIMENTOARM,ALTURAARM,VOLUMEARM,TIPOARM,EMBALAGEMMASTER,USAALIQCREDICMSDIFER,PSICOTROPICO,MEDICAMENTOHOSPITALAR,SOMENTETV3,FRACAOSEPARACAO,VOLUMEREC,TIPORESTRICAOMED,FRETEESPECIAL,PESOBRUTOMASTER
9 ,PRECIFICESTRANGEIRA,CODPROD,DESCRICAO,EMBALAGEM,UNIDADE,PESOLIQ,CODEPTO,CODSEC,QTUNIT,CODFORNEC,DTCADASTRO,VOLUME,CODAUXILIAR,QTUNITCX,REVENDA,CODPRODPRINC,OBS2,UNIDADEMASTER,LARGURAM3,ALTURAM3,COMPRIMENTOM3,PRECOFIXO,PISCOFINSRETIDO,PERCCOMMOT,COMISSAOFIXA,USACLASSIFICACAO,IMUNETRIB,PESOVARIAVEL,COMPRACONSIGNADO,CONFERENOCHECKOUT,PERCPERDAKG,APROVEITACREDICMS,APROVEITACREDPISCOFINS,VLICMSANTECIPADO,VERSANALISE,CONTLOGANALISE,CONSIDERARICMSANTECIPCUSTO,CALCCREDIPI,ENVIARFORCAVENDAS,UTILIZAPRECOMAXCONSUMIDOR,DESTAQUEFICHATECNICA,EX_DOSEAMENTO,EX_IMPUREZA,PESOLIQMASTER,PCKROTATIVO,PRAZOEXPURGO,FRACIONADO,CODNESTLETERCEIROS,CONFAZ,USACROSS,USAWMS,UTILIZARVASILHAME,NUMSEQATU,TIPOEMBALAGE,TIPOCARGA,ESPECIFICOATIVIDADEPR,TIPOCOMISSAO,RESTRICAOTRANSP,VALIDARLOTE,ISENTOREGMS,CODAUXILIAR2,PASSELIVRE,MULTIPLO,TIPOCALCST,AUTORIZATIPO4,LARGURAARM,COMPRIMENTOARM,ALTURAARM,VOLUMEARM,TIPOARM,EMBALAGEMMASTER,USAALIQCREDICMSDIFER,PSICOTROPICO,MEDICAMENTOHOSPITALAR,SOMENTETV3,FRACAOSEPARACAO,VOLUMEREC,TIPORESTRICAOMED,FRETEESPECIAL,PESOBRUTOMASTERMuito Obrigado..!! 😀
Só falta isso, mas já ajudou bastante.. 💡
Renato 😉
15 de janeiro de 2010 às 11:33 pm #92121Girino
ParticipanteOlá Lits..!! 8) 8) 8)
Acho que eu já sei o que aconteceu. 😀
Analisando, percebi que tem algumas colunas que tem dados, porém esses dados podem estar em apenas uma linha do select. 😉
Neste caso eu devo pegar o array que tiver a maior quantidade de colunas, pois este será o correto.
Abraços e muito obrigado novamente.. 😉
Renato 😀
16 de janeiro de 2010 às 12:17 am #92123fsitja
Participante[quote=”hudsona”:319hnvr2]E eu que reclamo da modelagem feita no sistema da minha empresa…..[/quote]
Caramba 😯
Excelente exemplo de modelagem XGH (Extreme Go-Horse).
http://gohorseprocess.wordpress.com/ext … horse-xgh/
Mais bacana só se for parte de um sistema de Entity-Attribute-Value:
http://en.wikipedia.org/wiki/Entity-att … alue_model😆
16 de janeiro de 2010 às 12:26 am #92124hudsona
ParticipanteObrigado fsitja,
Agora eu entendo a maioria dos progamadores da minha Empresa,
mas esse é um exemplo de modelagem VXGH (Very Extreme Go-Horse).
O Extreme Go-Horse é que minha empresa esta tentando implementar.
Só que a equipe ainda esta dividida rs.
-
AutorPosts
- Você deve fazer login para responder a este tópico.