PL/SQL har en otrevlig syntax
2008-02-21 22:46
DatorerEn av de kurser jag läser nu är databaser. Jag har ju hållit på lite med databaser i MySQL förut men nu är det lite nya grejer. Vi använder är Oracle som inte riktigt litar på oss användare.
Jag vet inte om det är Oracle eller om det är SQL som är omständigt. Kanske är det jag som inte har sysslat med det så ofta. Det är i alla fall mer annorlunda än vanlig programmering. Alla SELECT, INSERT känns ju ganska rakt fram så länge de inte blir för invecklade. När man får flera "sub queries" så blir det lätt oöverskådligt och svårt att riktigt se vad det är man skrivit. Man känner sig låst och det blir gärna en del som sker dubbelt vilket inte är så bra.
Oracle har även något som kallas för PL/SQL. Så inte nog med att Oracle har en del småskillnader i syntaxen gentemot SQL-standarden, de har även då PL/SQL som ska vara något av ett programmeringsspråk. PL/SQL känns verkligen inte alltid så lätt att få rätt. Det beror på många olika saker. En är att syntaxen känns stel och gammal. Inte alls som Java eller C men det är ju trots allt inte meningen att man ska skriva jätte grejer där utan bara en del triggers för att se till att datan hanteras som man vill. Nu vet jag inte om det finns riktigt bra utvecklingsmiljöer för detta men det vi använder är då inget mer än att vi skriver koden och får felmedelanden om det blir fel. Detta är nog det jobbigaste. Felmedelandena är nämligen riktigt dåliga. Speciellt när man gör triggers. Då är man nämligen tvungen att skriva in ett speciellt kommando för att visa felmedelanden. Tydligen så skapas triggern fast än det blir fel ibland vilket känns lite skumt. Ett felmedelande som typ något med "statement ignored..." och så visar den radnummer till något ställe men felet är på något helt annat ställe. Det kan ibland ta en del tid att hitta felet. Vad jag insett är att man får lyfta ut små bitar SQL och köra dem direkt med små modifikationer för att se om man verkligen får det man vill ha.
Det kanske låter som jag bara klagar och tycker att Oracle är värdelöst men det är nog inte riktigt så illa. Oracle är säkert bra på något vis men bättre felmedelanden hade verkligen inte skadat. Det är ju faktiskt mycket mer användarvänligt än assembler. Finns säkert bra verktyg med syntax highlighting att använda också om man bara orkat leta. 2008-02-23 23:03
väldigt intressant för oss som är insatta :)
2008-10-01 14:45
Jodå, Oracle har egna gratisverktyg (med syntax highlighting) och automatisk visning/hantering av felmeddelanden och allting du efterfrågar. Bara att ladda hem från Oracles hemsida. Det är gratis.
I övrigt; man kan skriva extremt stora system med hjälp av PL/SQL. Det websystem vi har är på 235 306 rader PL/SQL-kod (select count(*) from DBA_SOURCE where OWNER in ('x', 'y')). Hanterar ungefär 500 000 dagliga requests. Felfritt.
/Charlie