You are not logged in.

mDev

Erfahrener Schreiberling

  • "mDev" is male
  • "mDev" started this thread

Posts: 282

Date of registration: Oct 10th 2002

Location: Hannover

Occupation: Wissenschaftlicher Mitarbeiter

1

Tuesday, June 7th 2005, 6:09pm

SQL Übung 8

hat es schon jemand geschafft ne prozedur zu erstellen? ich bekomm in der ersten zeile immer ein

Fand das Symbol "(" als eines der folgenden erwartet wurde...

nichmals die beispiele aus dem skript lassen sich erstellen...

mDev

Erfahrener Schreiberling

  • "mDev" is male
  • "mDev" started this thread

Posts: 282

Date of registration: Oct 10th 2002

Location: Hannover

Occupation: Wissenschaftlicher Mitarbeiter

2

Tuesday, June 7th 2005, 7:29pm

hm, ohne übergebene parameter funktionierts, aber sobald ich nen parameter übergeben lassen will gibts nen fehler...

oder is an der deklaration irgendwas falsch?

Source code

1
2
CREATE OR REPLACE PROCEDURE test (s_arg VARCHAR2(10)) IS
...

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

3

Tuesday, June 7th 2005, 7:42pm

Quoted

Original von mDev
oder is an der deklaration irgendwas falsch?

Source code

1
2
CREATE OR REPLACE PROCEDURE test (s_arg VARCHAR2(10)) IS
...
Muß das nicht CREATE ... AS ... heißen?

EDIT: Vergiß es, habe was verwechselt.
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

This post has been edited 1 times, last edit by "Joachim" (Jun 7th 2005, 7:43pm)


mDev

Erfahrener Schreiberling

  • "mDev" is male
  • "mDev" started this thread

Posts: 282

Date of registration: Oct 10th 2002

Location: Hannover

Occupation: Wissenschaftlicher Mitarbeiter

4

Tuesday, June 7th 2005, 8:13pm

alles klar, ich habs. anscheinend darf man keine variablenlängen im prozedur-kopf vorgeben... :rolleyes:

mDev

Erfahrener Schreiberling

  • "mDev" is male
  • "mDev" started this thread

Posts: 282

Date of registration: Oct 10th 2002

Location: Hannover

Occupation: Wissenschaftlicher Mitarbeiter

5

Tuesday, June 7th 2005, 9:12pm

jetzt bin ich aber echt ratlos...:

letzte zeile der package-spezifikation:

Source code

1
END movie_connections;

Source code

1
PLS-00103: Fand das Symbol "end-of-file" als eines der folgenden erwartet wurde: ; Das Symbol ";" ersetzte "end-of-file", um fortzufahren.

kakTuZ

größtenteils harmlos

  • "kakTuZ" is male

Posts: 309

Date of registration: Oct 14th 2003

Location: Hannover

Occupation: Software Developer

6

Tuesday, June 7th 2005, 9:15pm

auf der SQL Übungsseite steht jetzt dazu der Hinweis, das Squiggle Probleme mit dem Namen nach dem end hat, und dass man dann einfach mit end; abschließen soll.
#! /bin/bash
yes 'arch is still the best'

iriania

Junior Schreiberling

  • "iriania" is female

Posts: 222

Date of registration: Nov 24th 2003

Location: Waqwaq

Occupation: Wie? Ich studiere? seit wann denn?

7

Tuesday, June 7th 2005, 9:16pm

@ mDev:
Wahrscheinlich hast du in einer der Zeilen davor das Semikolon vergessen, ist mir auch schon mal passiert!
...und sie dreht sich doch!

kakTuZ

größtenteils harmlos

  • "kakTuZ" is male

Posts: 309

Date of registration: Oct 14th 2003

Location: Hannover

Occupation: Software Developer

8

Tuesday, June 7th 2005, 11:27pm

zu 1.e)
Irgendwie will er 'Winnetous Rückkehr' nicht. Er wirft kein der von der Aufgabe vorgesehenen exceptions, fügt aber auch nichts in die Tabelle ein. Mit 'Star Wars: Episode III' funktioniert es prima.
Könnte das eventuell am ü liegen?
#! /bin/bash
yes 'arch is still the best'

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

9

Tuesday, June 7th 2005, 11:34pm

Quoted

Original von kakTuZ
zu 1.e)
Irgendwie will er 'Winnetous Rückkehr' nicht. Er wirft kein der von der Aufgabe vorgesehenen exceptions, fügt aber auch nichts in die Tabelle ein. Mit 'Star Wars: Episode III' funktioniert es prima.
Könnte das eventuell am ü liegen?
Du kannst ja mal versuchen, das "ü" mit der Funktion UNISTR zu erzeugen. Den Unicode-Zeichencode für "ü" findest Du hier: http://www.unicode.org/charts/PDF/U0080.pdf
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

Prof_NARF

Trainee

Posts: 72

Date of registration: Nov 18th 2002

10

Wednesday, June 8th 2005, 9:11am

Nein, das liegt daran das Winnetou einfach keine Vorgängerfilme in der PRED Tabelle hat. D.h. es gibt zwar den Film in MOVIE, aber keinen Eintrag in PRED.

Warum also dieser Film als Bsp. für die Aufgabe gewählt wurde ist mir schleierhaft. Das ist sozusagen ein 3. Exception-Fall ;) Filme die keinen Vorgänger besitzen.

mfg
Prof_NARF
Hier könnt ihr was über die Hommingberger Gepardenforelle erfahren: :D

Arne

ThI

  • "Arne" is male

Posts: 1,798

Date of registration: Oct 7th 2002

Location: Hannover :)

Occupation: Lecturer ThI

11

Wednesday, June 8th 2005, 11:56am

Quoted

Original von Prof_NARF
Nein, das liegt daran das Winnetou einfach keine Vorgängerfilme in der PRED Tabelle hat. D.h. es gibt zwar den Film in MOVIE, aber keinen Eintrag in PRED.

Warum also dieser Film als Bsp. für die Aufgabe gewählt wurde ist mir schleierhaft. Das ist sozusagen ein 3. Exception-Fall ;) Filme die keinen Vorgänger besitzen.

mfg
Prof_NARF


Wie wärs, wenn man einfach mal moviedb.pred benutzt und nicht die Tabelle pred, die man letzte Übung selber erstellt hat?
"NP - The class of dashed hopes and idle dreams." Complexity Zoo

Prof_NARF

Trainee

Posts: 72

Date of registration: Nov 18th 2002

12

Wednesday, June 8th 2005, 12:43pm

das wäre natürlich viel schlauer ;)
Hier könnt ihr was über die Hommingberger Gepardenforelle erfahren: :D

cst

Praktikant

  • "cst" is male

Posts: 24

Date of registration: Jun 1st 2005

Location: Wunstorf

13

Wednesday, June 8th 2005, 3:52pm

Ich möchte nochmal darauf hinweisen die Tabelle MOVIEDB.pred zu benutzen statt eine eigene.
In dieser Tabelle stehen Vorgängerbeziehungen von Filmen drin (MOVIE = Filmnummer, PRED = Nummer vom Vorgängerfilm). Mehr ist nicht gesagt. D.h. Filme können mehrere Nachfolger und mehrere Vorgänger haben.

Wie soll man das denn ohne Cursor lösen? etwa so (iterativ):

1. Alle direkten Vorgängerbeziehungen des Films in ERG einfügen.
2. Alle direkten Vorgängerbeziehungen der Vorgänger aus ERG in ERG
einfügen, sofern sie nicht schon drinstehen.
3. solange etwas eingefügt wurde: weiter mit 2.

Schritt 2. geht mit reinem SQL; der Rest ist nur "Schleife-drumrum-basteln"

Wenn ich meine Prozedur für "Winnetous Rückkehr" aufrufe, dann erhalte ich 18 Zeilen in der ERG-Tabelle.

Source code

1
select quote from quote where movie=189059 and dialog=59 and line=1;
...and the Force is SQL. :)

This post has been edited 2 times, last edit by "cst" (Jun 8th 2005, 4:03pm)


kakTuZ

größtenteils harmlos

  • "kakTuZ" is male

Posts: 309

Date of registration: Oct 14th 2003

Location: Hannover

Occupation: Software Developer

14

Wednesday, June 8th 2005, 5:26pm

Danke, mit moviedb.pred bekomme ich auch 18 Einträge.
#! /bin/bash
yes 'arch is still the best'

This post has been edited 1 times, last edit by "kakTuZ" (Jun 8th 2005, 5:27pm)


serotonin

Trainee

Posts: 96

Date of registration: Oct 24th 2003

Occupation: was wohl?

15

Wednesday, June 8th 2005, 6:10pm

Ist es normal, dass in der Tabelle pred ein Film mehrere Vorgänger hat?
Bei Aufgabe 1, Blatt 4 steht im einführenden Text:
" Filme in dieser Tabelle sollen jedoch nur höchstens einen Vorgänger haben. "

Allerdings gibt mir folgende Anfrage 2 Beziehungen aus:

Source code

1
SELECT movie, pred FROM moviedb.pred WHERE movie = 218265


Dadurch kommt bei meiner all_preds_into_erg im package movie_connections ein TOO_MANY_ROWS-Fehler, wenn ich den Film "Winnetous Rückkehr" eingebe.

Hab ihr das berücksichtigt?

EDIT: Ich seh grad, dass moviedb.pred sich überhaupt nicht auf das alte pred bezieht.
Aber ich weiß trotzdem nicht, wie ich ohne Cursor abfangen soll, dass bei meiner Unterabfrage mehr als eine Zeile geliefert wird.
"Data items tend to be like children; they enjoy hanging around in groups together."

This post has been edited 2 times, last edit by "serotonin" (Jun 8th 2005, 6:27pm)


Ray-D

Alter Hase

  • "Ray-D" is male

Posts: 690

Date of registration: Oct 9th 2002

Location: Zimbabwe-Island Ost Beiträge: 3.427

Occupation: Informatiker

16

Wednesday, June 8th 2005, 8:47pm

[edit]schon gut... hab mich vertan
"ob ich alles weiss, was wir wissen, weiss ich auch nicht, aber ich weiss natürlich niemand von uns weiss etwas was er nicht weiss" - Wolgang Schäuble
Freiheit wird nicht erbettelt, sondern erkämpft


Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von »Ray-D« (Heute, 04:29)

This post has been edited 1 times, last edit by "Ray-D" (Jun 8th 2005, 8:47pm)


Markus

the one and only Unterstrich!

Posts: 2,571

Date of registration: Oct 9th 2003

17

Wednesday, June 8th 2005, 11:50pm

einfach mal mit count(*) die reihen zaehlen und dann mit if entscheiden, ob ok oder nicht ok. Wenn ok, dann kann man damit arbeiten.
Charmant sein? Hab ich längst aufgegeben. Glaubt mir doch eh keiner...

mDev

Erfahrener Schreiberling

  • "mDev" is male
  • "mDev" started this thread

Posts: 282

Date of registration: Oct 10th 2002

Location: Hannover

Occupation: Wissenschaftlicher Mitarbeiter

18

Thursday, June 9th 2005, 12:44pm

hm, obwohl ich mit count(*) abfrage, ob wirklich nur ein eintrag vorhanden ist, bekomm ich folgende fehlermeldung:

Source code

1
Exakter Abruf gibt mehr als die geforderte Zeilenzahl zurück

Benjamin

Segelnder Alter Hase

  • "Benjamin" is male

Posts: 3,827

Date of registration: Oct 1st 2002

Location: Region Hannover

Occupation: Alumni

19

Thursday, June 9th 2005, 5:18pm

@cst

spricht eigentlich irgenwas dagegen, eine Hilfsprozedur zu verwenden und die Anzahl in a) durch ein count(*) zu ermitteln?
Oder muss ich meine wohl besser funktionierende rekursive Lösung im Kampf gegen die Korrektoren mit der Musterlösung aufgeben.
Es gibt nur eine bessere Sache als auf dem Wasser zu sein: Noch mehr auf dem Wasser sein.

cst

Praktikant

  • "cst" is male

Posts: 24

Date of registration: Jun 1st 2005

Location: Wunstorf

20

Thursday, June 9th 2005, 6:37pm

1. Welche Anzahl genau?
2. Wozu soll man diese Anzahl brauchen?

Also es spricht nichts dagegen, aber auch nichts dafür. ;)

DIe iterative Lösung besteht aus den o.g. 3 Schritten, bei der rekursiven Lösung reicht Schritt 2 (allerdings muss man dann bei Aufgabe 2 mit check_erg aufpassen.)

Nochmal: Man kann sich nicht darauf verlassen, dass ein Film genau einen Nachfolger oder genau einen Vorgänger hat. (Das ist aber auch egal, wenn man ein INSERT mit Subquery benutzt.)

This post has been edited 1 times, last edit by "cst" (Jun 9th 2005, 6:45pm)