Toon posts:

[ORACLE / SQL] INSERT INTO + ORDER BY mogelijk??

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo iedereen ,

wij hebben een stukje code waarin het volgende stukje een fout geeft (statement not properly ended)

Dit is het stukje:

insert into ophalenfactu3RW
select
regel2, factuurnr, regelnr
from ophalenfactu2RW
order by factuurnr, regelnr
;

We plaatsen dus iets in een neiuwe tabel en dat moet georderd worden, alleen dat werkt dus niet !!!! (al laten we 'order by .....' weg dan doet ie het wel!!

Het moet dus iets heel simpels zijn. Hoe moeten we dat 'order by' statement dan gebruiken??

Hoop dat je kunt helpen, want dit is echt heel belangrijk voor ons!! 8)7

Thanks alvast _/-\o_ !!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Order by is onzin bij inserts, de volgorde in de db is ongedefinieerd.
Bij het ophalen gebruik je order by.

Who is John Galt?


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 21:24

NMe

Quia Ego Sic Dico.

Je kan altijd proberen om haakjes om je subselect te zetten, maar of het helpt weet ik niet. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:34
Dat vind ik ook.
de volgorde in de db is ongedefinieerd.
Niet altijd...
In Sql Server heb je zoiets als een 'clustered index'. Deze index bepaalt ook de fysieke opslagvolgorde van de records in de table.
(Als je een clustered index plaatst, plaats je die dus best op een column die niet (of slechts gering) van waarde veranderd, en een column die altijd verhoogd wordt (bv een identity column)

https://fgheysels.github.io/


Verwijderd

Topicstarter
justmental schreef op zondag 19 december 2004 @ 17:04:
Order by is onzin bij inserts, de volgorde in de db is ongedefinieerd.
Bij het ophalen gebruik je order by.
Ok, thanks

maar wat moet ik dan??

Die regels in die tabel moeten georderd worden op factuurnr en regelnr, dat MOET gewoon!!

Er is toch wel een oplossing voor?? ik wil best de gegevens overplaatsen naar een andere tabel ofzo, als het dan wel mogelijk is een bepaalde volgorde te krijgen!

Het zou toch raar zijn als je de records in een tabel niet kunt orderen!?
(de records moeten namelijk in een bepaalde volgorde staan, zodat Exact de tabel in kan lezen!)

Weet iemand een oplossing?

Edit: @NME: nee helaas werkt niet...

@Whoama: Whoa klinkt leuk, maar helaas heb ik er in deze situatie niks aan, of weet je een oplossing mbv die clusterd index voor dit probleem?

[ Voor 12% gewijzigd door Verwijderd op 19-12-2004 17:13 ]


  • Mickman
  • Registratie: Juni 2001
  • Laatst online: 29-03 18:11
Sinds wanneer kan je een select statement gebruiken bij een insert?

Ik gebruik altijd gewoon:

insert into <table> ('waarde1','waarde2');

Order by gebruik je om je omgehaalde resultaten te ordenen.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 21:24

NMe

Quia Ego Sic Dico.

Verwijderd schreef op zondag 19 december 2004 @ 17:11:
Ok, thanks

maar wat moet ik dan??

Die regels in die tabel moeten georderd worden op factuurnr en regelnr, dat MOET gewoon!!

Er is toch wel een oplossing voor?? ik wil best de gegevens overplaatsen naar een andere tabel ofzo, als het dan wel mogelijk is een bepaalde volgorde te krijgen!

Het zou toch raar zijn als je de records in een tabel niet kunt orderen!?
(de records moeten namelijk in een bepaalde volgorde staan, zodat Exact de tabel in kan lezen!)

Weet iemand een oplossing?
Je kan toch gewoon orderen op het moment dat je de gegevens uit de tabel haalt? :?
Mickman schreef op zondag 19 december 2004 @ 17:13:
Sinds wanneer kan je een select statement gebruiken bij een insert?

Ik gebruik altijd gewoon:

insert into <table> ('waarde1','waarde2');

Order by gebruik je om je omgehaalde resultaten te ordenen.
Geselecteerde data inserten in een andere tabel kan gewoon hoor, wat dat betreft is er niets mis met de query van de TS.

[ Voor 25% gewijzigd door NMe op 19-12-2004 17:15 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Mickman schreef op zondag 19 december 2004 @ 17:13:
Sinds wanneer kan je een select statement gebruiken bij een insert?

Ik gebruik altijd gewoon:

insert into <table> ('waarde1','waarde2');

Order by gebruik je om je omgehaalde resultaten te ordenen.
Selects in insert statements is specifieke functionaliteit van Oracle.

Who is John Galt?


Verwijderd

Topicstarter
Mickman schreef op zondag 19 december 2004 @ 17:13:
Sinds wanneer kan je een select statement gebruiken bij een insert?

Ik gebruik altijd gewoon:

insert into <table> ('waarde1','waarde2');

Order by gebruik je om je omgehaalde resultaten te ordenen.
dat select bij insert into is geen probleem, werkt prima

ik moet alleen de records in mn tabel georderd hebben

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:34
Verwijderd schreef op zondag 19 december 2004 @ 17:11:
[...]


Die regels in die tabel moeten georderd worden op factuurnr en regelnr, dat MOET gewoon!!
Waarom?
Er is toch niemand die baat heeft , of die moeten weten HOE die gegevens intern opgeslagen worden, zolang ze maar op de juiste manier op die factuur komen ?
Daar moet je voor zorgen tijdens het ophalen van de gegevens en bij het tonen ervan.
Het is gewoon onzin dat die gegevens zo MOETEN opgeslagen worden.

https://fgheysels.github.io/


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 21:24

NMe

Quia Ego Sic Dico.

Verwijderd schreef op zondag 19 december 2004 @ 17:15:
dat select bij insert into is geen probleem, werkt prima

ik moet alleen de records in mn tabel georderd hebben
Waarom moeten ze in de tabel zelf gesorteerd staan? :? Een database dient voor opslag, niet presentatie. Je kan toch gewoon sorteren op het moment dat je de data uit de database trekt met een query? :?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Verwijderd schreef op zondag 19 december 2004 @ 17:15:
dat select bij insert into is geen probleem, werkt prima

ik moet alleen de records in mn tabel georderd hebben
Je begrijpt het nog niet volgens mij.
De records komen niet geordend in de tabel te staan.
Bij het ophalen geef je een order by mee om de gegevens geordend te presenteren.

Dus in de tabel:
nr naam
5 piet
3 jan
4 klaas
1 aap

Dan ophalen met:
select id, naam
from tabel
order by id

En je krijgt:
id naam
1 aap
3 jan
4 klaas
5 piet

[ Voor 3% gewijzigd door justmental op 19-12-2004 17:19 ]

Who is John Galt?


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:34
justmental schreef op zondag 19 december 2004 @ 17:14:
[...]

Selects in insert statements is specifieke functionaliteit van Oracle.
:?
Is dat geen standaard SQL ?
code:
1
2
INSERT INTO <tabel> ( column1, column2 )
SELECT col1, col2 FROM <othertable>

kan afaik in ieder RDBMS

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:34
TS: je zegt dat het te maken heeft met Exact. Hoe importeer je die data in Exact ?
Je kan dat toch wel dmv een query doen ofzo ?

https://fgheysels.github.io/


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

whoami schreef op zondag 19 december 2004 @ 17:18:
:?
Is dat geen standaard SQL ?
code:
1
2
INSERT INTO <tabel> ( column1, column2 )
SELECT col1, col2 FROM <othertable>

kan afaik in ieder RDBMS
Ik weet het niet zeker, maar ik hoorde laatst van niet :?

Who is John Galt?


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 21:24

NMe

Quia Ego Sic Dico.

justmental schreef op zondag 19 december 2004 @ 17:20:
Ik weet het niet zeker, maar ik hoorde laatst van niet :?
Volgens mij kan zelfs MySQL het, en dat zegt veel. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

-NMe- schreef op zondag 19 december 2004 @ 17:24:
Volgens mij kan zelfs MySQL het, en dat zegt veel. :P
Ik ben in het warretje zie ik al, het ging om 'create table as select' :o

Who is John Galt?


Verwijderd

Topicstarter
[quote]-NMe- schreef op zondag 19 december 2004 @ 17:14:
[...]

Je kan toch gewoon orderen op het moment dat je de gegevens uit de tabel haalt? :?

Zeker wel! Alleen gaat bij mij exact de waardes uit die tabel halen... daarom moet de tabel al georderd zijn...

................

fuck nou zie ik het:

We maken voor de invioer in exact gebruik van een csv bestand (wat automatisch gebeurt door een txt-bestand naar csv te laten hernoemen, daaruit leest Exact de gegevens)

Dat txt bestand wordt gevuld door gebruik te maken van de spool-functie; deze functie 'caprtured' de output op het scherm naar een txt-file

Het is dus helemaal niet nodig de volgorde in de tabel te veranderen..... we gebruiken namelijk een select-statement om de spool-file te vullen en hierbij kunnen we dus een orderbystatement geven,,,,,!!!!!

Excuus dat ik het niet eerder zag, maar bedankt voor jullie tijd; hierdoor ben ik 'het licht' ineens gaan zien!!!! :P

Exact importeerd dus via een csv bestand, dat komt van een txt bestand.

Nogmaals hartelijk dank!!!!!!!!! _/-\o_ _/-\o_ _/-\o_

[ Voor 8% gewijzigd door Verwijderd op 19-12-2004 17:30 . Reden: nog meer bedankt ]

Pagina: 1