Toon posts:

Opdrachten / Oefenmateriaal PL/SQL

Pagina: 1
Acties:

Vraag


  • inimini2007
  • Registratie: Maart 2017
  • Laatst online: 05-01 10:58
Goedemiddag forumleden,

Ik ben nu sinds 1,5 jaar bezig met een interne omscholing van de expeditie naar programmeur zonder enige achtergrond in IT.
In tussentijd heb ik cursussen SQL en PL/SQL gevolgd en de nodige ervaring opgedaan met het werken in APEX en Jaspersoft.

Op zich gaat dat best aardig, echter loop ik een beetje tegen het probleem aan dat ik in bestaande code moet werken en dat al heel snel gecompliceerd wordt.
Daardoor is het schrijven van functies en procedures momenteel nog niet echt ontwikkelt. En we hebben ook weinig mogelijkheden om te oefenen met kleine, minder complexe functies/procedures.

Om dit te ontwikkelen ben ik daarom op zoek naar casussen / boeken met opdrachten waarin de opdrachten worden opgebouwd. En waar dan SQL statements, Functies en Procedures bij nodig zijn en de werking daarvan nader wordt uitgelegd.

Als voorbeeld zag ik het programmeren van de werking van een geldautomaat ergens voorbij komen.
Prima, maar dan heb ik geen idee waar ik moet beginnen en zou ik dit graag stapsgewijs willen doorlopen |:(

De vraag is dus eigenlijk of hier boeken / casussen voor beschikbaar zijn en/of jullie andere tips hebben om dit goed aan te vliegen?

Alle reacties


  • luukvr
  • Registratie: Juni 2011
  • Niet online
Bestaande code als in 'stored procedures' of bestaande code als in software die een database gebruikt?

Je kan genoeg online vinden op het gebied van database ontwerp, database performance, database programmatuur (triggers/stored procedures).

Dus afhankelijk van waar je meer over wilt leren zou ik specifiek zoeken naar:
- documentatie over het type database die je gebruikt
- documentatie over de programmeertaal die deze database gebruikt (daar zou je nog specifiek naar crud of data analyse voorbeelden gaan kijken)

De combinatie is vaak niet zo interessant, het limiteert niet de database en niet de software (behalve als er nog specifiek een laag tussen zit).

  • inimini2007
  • Registratie: Maart 2017
  • Laatst online: 05-01 10:58
luukvr schreef op donderdag 22 september 2022 @ 11:15:
Bestaande code als in 'stored procedures' of bestaande code als in software die een database gebruikt?

Je kan genoeg online vinden op het gebied van database ontwerp, database performance, database programmatuur (triggers/stored procedures).

Dus afhankelijk van waar je meer over wilt leren zou ik specifiek zoeken naar:
- documentatie over het type database die je gebruikt
- documentatie over de programmeertaal die deze database gebruikt (daar zou je nog specifiek naar crud of data analyse voorbeelden gaan kijken)

De combinatie is vaak niet zo interessant, het limiteert niet de database en niet de software (behalve als er nog specifiek een laag tussen zit).
Bedankt voor je reactie.

Met bestaande code bedoel ik stored procedures, gemaakt door mijn collega's.

Het maken van een functie/procedure waarin je een loop maakt over een medewerker tabel om salaris op te halen bijvoorbeeld, dat lukt me wel. Want zoiets had ik wel gevonden op internet.

Ik ben dus op zoek naar mooie opdrachten waarin ik de PL/SQL stapsgewijs kan uitbreiden.

  • itons
  • Registratie: Oktober 2003
  • Niet online
Wikipedia: Conway's Game of Life is een leuke om te doen

  • HenkEisjedies
  • Registratie: Maart 2004
  • Laatst online: 11:30
Ik zou dan vooral eens kijken bij de bron, en dat is Oracle.
https://www.oracle.com/nl...ologies/appdev/plsql.html

En stel je vraag eens hier: https://community.oracle....categories/sql_and_pl_sql

  • Kheos
  • Registratie: Juni 2011
  • Laatst online: 20:47
Game of life in PL/SQL? Hoe zie je dat precies?

  • itons
  • Registratie: Oktober 2003
  • Niet online
Kheos schreef op dinsdag 27 september 2022 @ 15:53:
[...]

Game of life in PL/SQL? Hoe zie je dat precies?
Je kan gewoon printen naar de console of wegschrijven naar een tabel......

  • Kheos
  • Registratie: Juni 2011
  • Laatst online: 20:47
itons schreef op dinsdag 27 september 2022 @ 15:57:
[...]
Je kan gewoon printen naar de console of wegschrijven naar een tabel......
Hoe ga jij game of life in PL/SQL maken?
Printen naar console? Welke console?
Wat wegschrijven naar een tabel? Welke value elk vakje heeft?
Hoe ga je je speelveld weergeven?
Hoe ga je je vakjes selecteren?

  • D4NG3R
  • Registratie: Juli 2009
  • Laatst online: 19:17
Kheos schreef op dinsdag 27 september 2022 @ 15:53:
[...]

Game of life in PL/SQL? Hoe zie je dat precies?
offtopic:
SQL is in principe Turing complete. })

Of het verstandig is om een relatieve beginner GoL te laten schrijven met PLSQL is een 2e. :+


@inimini2007 even een vraag, maar je geeft aan dat je vanaf 0 IT kennis naar 'programmeur' toe aan het werken bent, wat versta jij onder 'programmeur' en wat is uiteindelijk het doel/baan welke je voor ogen hebt?

Ik denk namelijk dat je het jezelf akelig lastig maakt door alleen maar te denken in SQL. Functies, procedures, triggers etc kan je waarschijnlijk aanzienlijk beter visualiseren door ook je tenen te dippen in een "normale" programmeertaal. Pak bijvoorbeeld een cursus Python of Java(script [NodeJS]) voor beginners op.

Komt d'r in, dan kö-j d’r oet kieken


  • itons
  • Registratie: Oktober 2003
  • Niet online
Kheos schreef op dinsdag 27 september 2022 @ 16:09:
[...]

Hoe ga jij game of life in PL/SQL maken?
Printen naar console? Welke console?
Wat wegschrijven naar een tabel? Welke value elk vakje heeft?
Hoe ga je je speelveld weergeven?
Hoe ga je je vakjes selecteren?
Hulde! Precies de vragen die de TS moet beantwoorden om dit te gaan doen!

  • Kheos
  • Registratie: Juni 2011
  • Laatst online: 20:47
itons schreef op dinsdag 27 september 2022 @ 16:53:
[...]
Hulde! Precies de vragen die de TS moet beantwoorden om dit te gaan doen!
Eerst dacht ik dat je je gewoon van programmeer taal had vergist, maar nu begin ik te denken dat je aan het trollen bent.
We hebben het over iemand die net wat cursusjes SQL en PL/SQL gedaan heeft, functies/loops/procedures kan schrijven want dat vindt hij op internet, niet weet hoe hij ergens aan moet beginnen, daar begeleiding bij nodig heeft en jij geeft als tip: maak gewoon game of life. 8)7

  • bwerg
  • Registratie: Januari 2009
  • Niet online

bwerg

Internettrol

D4NG3R schreef op dinsdag 27 september 2022 @ 16:13:
[...]

offtopic:
SQL is in principe Turing complete. })

Of het verstandig is om een relatieve beginner GoL te laten schrijven met PLSQL is een 2e. :+
offtopic:
GoL is ook turing complete, dus waarom geen SQL genereren met GoL? :+


Nee, even serieus. Anderen hebben al wat tips gegeven over hoe het te leren - waarbij ik zelf ook GoL nou niet als een serieuze optie zie want daar is SQL namelijk totaal niet op gericht dus dat is met het oog op je leerdoelen niet bepaald leerzaam, dan ben je gewoon SQL aan het hacken. Maar genoeg manieren om beter te worden in SQL.

Maar nog een andere invalshoek voor de TS: IT'ers hebben nogal de neiging om gewoon iets te bouwen zoals ze het in hun hoofd hebben. Dus de huidige programmeur weet hoe hij dingen gefixt krijgt met complexe SQL en dat doet hij dan ook, en misschien ook gewoon snel en goed. Maar je zit dan wel met een probleem bij overdracht: als je die code aan jou geeft ben je eerst twee weken bezig met snappen hoe de huidige code werkt voordat je ook maar iets kunt wijzigen. Daar zit aan de ene kant een probleem als ze jou zien als toekomstige IT'er, maar aan de andere kant zit daar een bedrijfsrisico: als de huidige programmeur onder de bus komt zul je wel moeten, dus documentatie en overdracht heeft meerwaarde. Kaart dat ook aan bij je team en bij je leidinggevenden. Want overdracht en begrijpelijke code kosten heel veel tijd en moeite maar voor de lange termijn is het soms noodzakelijk. Misschien kunnen er structurele overdrachts-sessies worden ingepland, of kunnen zaken in meer detail worden uitgeschreven - misschien kun je dat zelfs zelf doen.

Maak er niet alleen je eigen persoonlijke probleem van. Ja, als je nog niet eens weet wat SELECT betekent moet je gewoon lekker zelf een SQL-cursus gaan volgen maar onbekend zijn met de code-base van je bedrijf is geen persoonlijk probleem.

Heeft geen speciale krachten en is daar erg boos over.


  • inimini2007
  • Registratie: Maart 2017
  • Laatst online: 05-01 10:58
D4NG3R schreef op dinsdag 27 september 2022 @ 16:13:
[...]

offtopic:
SQL is in principe Turing complete. })

Of het verstandig is om een relatieve beginner GoL te laten schrijven met PLSQL is een 2e. :+


@inimini2007 even een vraag, maar je geeft aan dat je vanaf 0 IT kennis naar 'programmeur' toe aan het werken bent, wat versta jij onder 'programmeur' en wat is uiteindelijk het doel/baan welke je voor ogen hebt?

Ik denk namelijk dat je het jezelf akelig lastig maakt door alleen maar te denken in SQL. Functies, procedures, triggers etc kan je waarschijnlijk aanzienlijk beter visualiseren door ook je tenen te dippen in een "normale" programmeertaal. Pak bijvoorbeeld een cursus Python of Java(script [NodeJS]) voor beginners op.
Ik werk bij een expediteur en wij bouwen applicaties in Apex (Oracle). Daarbij komt SQL, PL/SQL, JavaScript, Html, CSS e.d. allemaal aan bod. Python gebruiken wij niet.

Nu maak ik veelal sql statements voor documenten of overzichten. Werk ik met PL/SQL in Apex om waardes te vullen (dat zijn geen complexe codes) en veel van m'n werk is ook kijken hoe een ander het gedaan heeft en dat dan op meerdere plekken in "bouwen" (kan vrij eentonig zijn). In Apex komt er dan zo nu en dan wat JavaScript, html en CSS bij kijken.

Wij hebben heel wat processen geautomatiseerd zoals bijv het automatisch versturen van de facturen op een bepaald tijdstip. Het lezen van zo'n proces gaat behoorlijk, maar ik zou dat zelf willen kunnen schrijven. En als ik zelf functies, procedure e.d. kan schrijven, zou ik daarna meer de focus willen leggen op JavaScript.

Het uiteindelijke doel is dan dat ik voor dit bedrijf aan de wensen van de medewerkers kan voldoen wat betreft het bouwen van processen die hun werk makkelijker of fijner maken en volledig zelfstandig kan werken.

Ik hoop dat dit iets meer toelichting geeft op welk punt ik nu sta en welke richting ik op wil.

  • inimini2007
  • Registratie: Maart 2017
  • Laatst online: 05-01 10:58
bwerg schreef op dinsdag 27 september 2022 @ 17:32:
[...]

offtopic:
GoL is ook turing complete, dus waarom geen SQL genereren met GoL? :+


Nee, even serieus. Anderen hebben al wat tips gegeven over hoe het te leren - waarbij ik zelf ook GoL nou niet als een serieuze optie zie want daar is SQL namelijk totaal niet op gericht dus dat is met het oog op je leerdoelen niet bepaald leerzaam, dan ben je gewoon SQL aan het hacken. Maar genoeg manieren om beter te worden in SQL.

Maar nog een andere invalshoek voor de TS: IT'ers hebben nogal de neiging om gewoon iets te bouwen zoals ze het in hun hoofd hebben. Dus de huidige programmeur weet hoe hij dingen gefixt krijgt met complexe SQL en dat doet hij dan ook, en misschien ook gewoon snel en goed. Maar je zit dan wel met een probleem bij overdracht: als je die code aan jou geeft ben je eerst twee weken bezig met snappen hoe de huidige code werkt voordat je ook maar iets kunt wijzigen. Daar zit aan de ene kant een probleem als ze jou zien als toekomstige IT'er, maar aan de andere kant zit daar een bedrijfsrisico: als de huidige programmeur onder de bus komt zul je wel moeten, dus documentatie en overdracht heeft meerwaarde. Kaart dat ook aan bij je team en bij je leidinggevenden. Want overdracht en begrijpelijke code kosten heel veel tijd en moeite maar voor de lange termijn is het soms noodzakelijk. Misschien kunnen er structurele overdrachts-sessies worden ingepland, of kunnen zaken in meer detail worden uitgeschreven - misschien kun je dat zelfs zelf doen.

Maak er niet alleen je eigen persoonlijke probleem van. Ja, als je nog niet eens weet wat SELECT betekent moet je gewoon lekker zelf een SQL-cursus gaan volgen maar onbekend zijn met de code-base van je bedrijf is geen persoonlijk probleem.
Ja dat is zeker een goed punt, want we zitten met zn tweeën, een hele ervaren ITer en ik dan. Daarachter hebben we wel een IT bedrijf wat support geeft wanneer nodig en zij hebben ook het nodige gebouwd. Dus het is inderdaad ook wel van belang dat ik de komende jaren de stap ga zetten naar volledig zelfstandig werken en dat ik het meerendeel gewoon kan oppakken.

SQL statements lukken me goed en eenvoudige pl/sql kom ik ook wel uit. Helaas wordt het al snel complex in de werkzaamheden en ik kijk dan regelmatig mee, maar daar kom ik uiteindelijk niet veel verder door.

Ik heb nu een database aangemaakt en wil daarin wat opdrachten van redelijk eenvoudig tot complex gaan oefenen. Dus nu ben ik op zoek naar boeken of videos met opdrachten waarmee ik stap voor stap kan gaan oefenen met functies, procedures, triggers etc.

  • bwerg
  • Registratie: Januari 2009
  • Niet online

bwerg

Internettrol

inimini2007 schreef op dinsdag 27 september 2022 @ 19:39:
Ik heb nu een database aangemaakt en wil daarin wat opdrachten van redelijk eenvoudig tot complex gaan oefenen. Dus nu ben ik op zoek naar boeken of videos met opdrachten waarmee ik stap voor stap kan gaan oefenen met functies, procedures, triggers etc.
Op zich niet verkeerd natuurlijk. Maar wat ik maar wil aangeven: maak weloverwogen een keuze of je dit in je eigen tijd wil doen of dat je er werktijd voor opeist.

De ervaren softwaredeveloper die alles in zijn eentje doet is maar o zo prettig voor een manager, want je gooit er problemen in en zonder te klagen wordt alles zomaar opgelost. Maar zo heeft niemand een beeld van of het goed begrijpelijke, onderhoudbare en overdraagbare code is of dat het een grote spaghetti is die alleen die ene developer ook kan begrijpen. Ik zeg niet dat dat laatste het geval is, maar: ben niet bang om met problemen in die categorie naar je leiding te stappen, bijvoorbeeld met het verzoek tot meer (werk)tijd om dingen uit te zoeken, of om dingen te documenteren.

Nou werk ik niet met slechts een enkele developer samen, maar toch komen we zo nu en dan oude spaghetticode tegen. Als je dat niet binnen een aanzienlijke tijd uitgevlooid krijgt, dan zie je dat niet als eigen onvermogen, maar als een probleem van de code: dan neem je als team de beslissing om eerst dingen uit te zoeken of te refactoren. En dat kost heel veel tijd, soms meer dan een nieuwe feature schrijven.

Heeft geen speciale krachten en is daar erg boos over.


  • itons
  • Registratie: Oktober 2003
  • Niet online
Sowieso de afweging even maken of je wel op de juiste plek zit als je early career bent. Als je maar 1 iemand hebt om van te leren en er is weinig aandacht voor on-the-job leren is dan heb ik daar zo mijn twijfels bij.

Überhaupt het Oracle ecosysteem kun je je van afvragen of dat het beste hoekje is om in actief te zijn als je nog een hele carrière voor je hebt.

Wat betreft GoL, dit is precies wat ik zelf jaren geleden gemaakt heb in PL/SQL toen ik daar beter in wilde worden. Packages maken, nadenken over interne en publieke functies, parameters en datastructuren, debugging tools, DML, DDL, het komt allemaal langs. Natuurlijk geen fancy visuele output maar genoeg om je veld te printen.

  • eheijnen
  • Registratie: Juli 2008
  • Niet online
Ik denk dat je naast hetgeen je nu mee bezig bent ook wat aandacht aan gestructureerd programmeren zou kunnen besteden. Dit zul je ook in stored procedures en Javascript (en andere talen) tegenkomen en het is de basis voor het overgrote deel van het programmeren ansich. Een wat oudere techniek zijn Nassi Schneidermann diagrammen. Deze zaken zullen je wat meer basis meegeven in het denken en ook wel het omzetten van een flow of gedachte naar programma-logica.

Behalve deze link is er natuurlijk meer over te vinden op het net, vooral in het Engels.
https://www.itpedia.nl/20...n-goede-programmeerstijl/

[Voor 17% gewijzigd door eheijnen op 28-09-2022 07:35]

The Internet connected people all around the world. But also the Village Idiots...


  • 80000
  • Registratie: Januari 2002
  • Laatst online: 14:10

80000

mrox

Om het snel en concreet te maken zou je dicht bij Oracle APEX en Oracle kunnen blijven (Oracle APEX developers worden gewoon goed betaald, dus de investering van je tijd komt heus wel terug):
1 - Als je de kans krijgt, installeer ook Oracle APEX op die database (of gebruik apex.oracle.com voor een free account)
2 - Zoek op youtube , ORACLE APEX en CRUD (ik vind er meerdere, ik zou de interactive grid nemen omdat het 1 van de recente widget is die Oracle levert, maar geen idee of de inhoud wat is, maar het is niet zo lang en het zal vast wel een PL/SQL backend api voor crud in voor zien).

Dat gezegd te hebben, het advies van de mede posters om de basis (concepten) te leren is echt wel raadzaam.

En dan bedoel ik meer database concepten om in een multiuser omgeving te ontwikkelen, zoals multiuser crud, pessimistic vs optimistic locking (met PL/SQL) want APEX(HTML + JAvascript) is stateless. Als je dit in APEX + PL/SQL kan bouwen, met gracefull afhandeling omdat een andere gebruiker dezelfde record update, kom je een heel eind.
Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee