|
![]() |
||
SQL - Sequencia de numeros
|
||
. Nós temos 673.940 usuários, convidamos você fazer parte de nossa comunidade também! Se ainda não encontrou o que procura use nossa pesquisa. Esperamos que aprecie nosso trabalho.
![]() |
|
|
Opções do Tópico |
|
|
#1 (permalink) |
|
Super Participante
|
É possivel criar uma sequencia de numeros, q vao do 1 até um numero X ?
Tipo.. ---------- 1 2 3 4 5 6 7 8 9 ... X Entenderam?
__________________
|Athlon 2600+ Barton||ASUS A7N8X Deluxe||GeForce FX5600XT 128Mb||HD Seagate 120Gb SATA||2 HD Seagate 80GB||Samsung 710N||512Mb Kingston DDR 400||ADSL Turbo (DSL-500G)|HT 5.1 2600watts| http://photobucket.com/albums/v422/msfabris/Casemod/ |
|
|
|
|
|
#2 (permalink) |
|
GeeK
|
Não! Você quer criar um contador em uma sentença SQL? :?:
__________________
Em busca de certificações Linux (LPI + RHCE)!!! |
|
|
|
|
|
#3 (permalink) |
|
Super Participante
|
Eh pra umas ideias malucas... seria para aproveitar codigos de registros q n estao sendo usados, pois o sequencial do banco tem akele problema...
__________________
|Athlon 2600+ Barton||ASUS A7N8X Deluxe||GeForce FX5600XT 128Mb||HD Seagate 120Gb SATA||2 HD Seagate 80GB||Samsung 710N||512Mb Kingston DDR 400||ADSL Turbo (DSL-500G)|HT 5.1 2600watts| http://photobucket.com/albums/v422/msfabris/Casemod/ |
|
|
|
|
|
#4 (permalink) |
|
Super Participante
|
Olha a minha ideia
Codigo ---------- 1 5 6 7 8 10 11 Ai eu ia fazer um Select pra listar : 1 2 3 4 5 6 7 8 9 10 11 <-- Max(codigo) minus (tirar os codigos ja usados)... Ia ficar assim 2 3 4 9 Ai eu pegaria o menor desse resultado... o 2! será q da pra fazer? Ou tem outra maneira mais simples? Uso o Oracle e Forms
__________________
|Athlon 2600+ Barton||ASUS A7N8X Deluxe||GeForce FX5600XT 128Mb||HD Seagate 120Gb SATA||2 HD Seagate 80GB||Samsung 710N||512Mb Kingston DDR 400||ADSL Turbo (DSL-500G)|HT 5.1 2600watts| http://photobucket.com/albums/v422/msfabris/Casemod/ |
|
|
|
|
|
#5 (permalink) |
|
Super Participante
Registrado em: Dec 2001
Mensagens: 936
Reputação: 18
![]() |
CAra se o campo for auto numeravel vc não vai conseguir inserir esse ID. Pois o banco iria ultilizar o proximo ID valido.
__________________
Linux User:#326216 Intel I7 - 920 - 6G DDR3 Tripple Channel @1600 - Geforce 285 1G. Programador ADVPL(Fazer o que é o que ta pagando as contas no momento...) |
|
|
|
|
|
#6 (permalink) |
|
Super Participante
|
Não, não esta auto numeravel.
__________________
|Athlon 2600+ Barton||ASUS A7N8X Deluxe||GeForce FX5600XT 128Mb||HD Seagate 120Gb SATA||2 HD Seagate 80GB||Samsung 710N||512Mb Kingston DDR 400||ADSL Turbo (DSL-500G)|HT 5.1 2600watts| http://photobucket.com/albums/v422/msfabris/Casemod/ |
|
|
|
|
|
#7 (permalink) |
|
Super Participante
Registrado em: Mar 2002
Mensagens: 654
Reputação: 17
![]() |
Olha, se vc tem uma tabela com um campo contendo uma sequência de números, vc pode usar a função enum() pra montar uma lista sequencial. Como vc não disse qual o SGDB que está usando, fica dificil dar o caminho certo ( se é que ele existe do jeito que vc quer). Dá uma olhada em "enum" no manual do seu SGDB.
[]! |
|
|
|
|
|
#8 (permalink) | |
|
Super Participante
|
Acquila
Citação:
__________________
|Athlon 2600+ Barton||ASUS A7N8X Deluxe||GeForce FX5600XT 128Mb||HD Seagate 120Gb SATA||2 HD Seagate 80GB||Samsung 710N||512Mb Kingston DDR 400||ADSL Turbo (DSL-500G)|HT 5.1 2600watts| http://photobucket.com/albums/v422/msfabris/Casemod/ |
|
|
|
|
|
|
#9 (permalink) |
|
Administrador
Registrado em: May 2002
Localização: Tijuca/RJ
Idade: 7
Mensagens: 83.483
Reputação: 226
![]() |
Talvez se vc fizesse em Perl... o Perl tem módulos pra trabalhar tanto com vários SQLs.
Pesquise sobre os módulos DBI e DBD do Perl.
__________________
Dúvidas sobre o Fórum? Guia de Utilização V2.0 ![]() Visite Quepolis (link de indicação) | "chmod 777 nunca ajudou ninguém" (c) 2002-2009 JQueiroz/FGdH BSCI: √ ISCW: □ MCSN: □ OTN: □ 25% CCSI: □ | Conheça o Novo Bebuns ![]() |
|
|
|
|
|
#10 (permalink) |
|
Super Participante
Registrado em: May 2002
Localização: Brasília
Mensagens: 553
Reputação: 17
![]() |
Se fosse Postgresql eu faria:
select id from generate_series(1, (select max(id) from minha_tabela)) as s(id) except select id from minha_tabela Não sei se o Oracle tem uma função semelhante ao generate_series. Se não tiver o jeito é criar uma função que gere a série de números. Pode sair caro se a tabela for grande. Qual seria a vantagem de reaproveitar os números? |
|
|
|
|
|
#11 (permalink) | |
|
Super Participante
|
Citação:
__________________
|Athlon 2600+ Barton||ASUS A7N8X Deluxe||GeForce FX5600XT 128Mb||HD Seagate 120Gb SATA||2 HD Seagate 80GB||Samsung 710N||512Mb Kingston DDR 400||ADSL Turbo (DSL-500G)|HT 5.1 2600watts| http://photobucket.com/albums/v422/msfabris/Casemod/ |
|
|
|
|
|
|
#12 (permalink) | |
|
Super Participante
Registrado em: Mar 2002
Mensagens: 654
Reputação: 17
![]() |
Citação:
[]! |
|
|
|
|
|
|
#13 (permalink) |
|
Super Participante
Registrado em: May 2002
Localização: Brasília
Mensagens: 553
Reputação: 17
![]() |
Criei a função gera_serie em PLpgSQL. Fica assim:
tabela_codigo: Código:
Código:
Código:
Código:
|
|
|
|
|
|
#14 (permalink) |
|
Super Participante
|
Valew Kakao!!! Amanha ja vou testar!!! Muito Obrigado!
__________________
|Athlon 2600+ Barton||ASUS A7N8X Deluxe||GeForce FX5600XT 128Mb||HD Seagate 120Gb SATA||2 HD Seagate 80GB||Samsung 710N||512Mb Kingston DDR 400||ADSL Turbo (DSL-500G)|HT 5.1 2600watts| http://photobucket.com/albums/v422/msfabris/Casemod/ |
|
|
|
|
|
#15 (permalink) |
|
Super Participante
|
Eu fiz a função assim, ela compila e nao da erro:
Código:
E o select assim: Código:
Ai eu fiz um teste assim: Código:
Como faço isso entao?
__________________
|Athlon 2600+ Barton||ASUS A7N8X Deluxe||GeForce FX5600XT 128Mb||HD Seagate 120Gb SATA||2 HD Seagate 80GB||Samsung 710N||512Mb Kingston DDR 400||ADSL Turbo (DSL-500G)|HT 5.1 2600watts| http://photobucket.com/albums/v422/msfabris/Casemod/ |
|
|
|
|
|
#16 (permalink) |
|
Super Participante
Registrado em: May 2002
Localização: Brasília
Mensagens: 553
Reputação: 17
![]() |
CREATE OR REPLACE FUNCTION GERA_SERIE(INICIO NUMBER,FIM NUMBER, PASSO NUMBER)
RETURN NUMBER IS CODIGO NUMBER(7) :=INICIO; BEGIN Ali no Return tem que ser um record set. Não sei como você fala isso no Oracle. Procurei o manual na Web e não achei. WHILE CODIGO <= FIM LOOP RETURN(CODIGO); ---Talvez falte algo com NEXT ??? CODIGO := CODIGO + PASSO; END LOOP; Como você vai retornar um record set não pode ser um return simples pois ele sai da função na primeira interação do laço. Tem que ter uma forma de dizer que ele deve acumular o resultado no record set. No postgresql é RETURN NEXT expressão. E depois do fim do laço ai sim um RETURN para sair da função. Não sei se este último é obrigatório no Oracle. No PG é. |
|
|
|
|
|
#17 (permalink) |
|
Super Participante
|
Kakao
Eu nao consegui encontrar como se faz esses comandos no Oracle. Alguem pode me ajudar? Aproveitando... parece que o oracle tem uma tabela temporaria para que possamos usar... Existe? Qual o nome?
__________________
|Athlon 2600+ Barton||ASUS A7N8X Deluxe||GeForce FX5600XT 128Mb||HD Seagate 120Gb SATA||2 HD Seagate 80GB||Samsung 710N||512Mb Kingston DDR 400||ADSL Turbo (DSL-500G)|HT 5.1 2600watts| http://photobucket.com/albums/v422/msfabris/Casemod/ |
|
|
|
|
|
#18 (permalink) |
|
Super Participante
Registrado em: May 2002
Localização: Brasília
Mensagens: 553
Reputação: 17
![]() |
Achei este exemplo do que ele chama de pipelined table function:
http://www.akadia.com/services/ora_pipe_functions.html |
|
|
|
|
|
#19 (permalink) |
|
Super Participante
Registrado em: May 2002
Localização: Brasília
Mensagens: 553
Reputação: 17
![]() |
Eu acho que é mais ou menos isso (chutando porque não tenho como testar):
Código:
Código:
|
|
|
|
|
|
#20 (permalink) |
|
Super Participante
|
Código:
Akele Pipelined e pipe row ele aceita e compila, mas o resultado ta vindo soh um(1), axo q eh porque o return n ta em forma de tabela: ------ 1 1 1 Alguma dica?
__________________
|Athlon 2600+ Barton||ASUS A7N8X Deluxe||GeForce FX5600XT 128Mb||HD Seagate 120Gb SATA||2 HD Seagate 80GB||Samsung 710N||512Mb Kingston DDR 400||ADSL Turbo (DSL-500G)|HT 5.1 2600watts| http://photobucket.com/albums/v422/msfabris/Casemod/ |
|
|
|
![]() |
| Opções do Tópico | |
|
|