Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

Justus

Junior Schreiberling

  • "Justus" is male
  • "Justus" started this thread

Posts: 152

Date of registration: Oct 16th 2004

Occupation: ich will auch mal Käptain sein!

1

Tuesday, June 6th 2006, 6:46pm

Sql 7

Hi


Ich hab da ein Problem. Ich möchte einer Variablen einen wert aus einer sql Abfrage zuweisen.

variable := (SELECT max(spalte) FROM tabelle);

Durch das max ist ja sichergestellt das nur ein wert zurückgewiesen wird. Das müste doch gehen, oder? Ich bekomm aber die Fehlermeldung:

ERROR at line 7:
ORA-06550: line 7, column 12:
PLS-00103: Encountered the symbol "SELECT" when expecting one of the following:
( - + case mod new not null others <an identifier>
<a double-quoted delimited-identifier> <a bind variable> avg
count current exists max min prior sql stddev sum variance
execute forall merge time timestamp interval date
<a string literal with character set specification>
<a number> <a single-quoted SQL string> pipe
<an alternatively-quoted string literal with character set specification>
<an alternativ
ORA-06550: line 7, column 40:
PLS-00103: Encountered the symbol ")" when expecting one of the following:
. , @ ; for <an identifier>
<a double-quoted delimited-identifier> group having intersect
minus order partition start subpartition union where connect
ORA-06550: line 14, column 0:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
;
Elapsed: 00:00:00.01

XAX

Junior Schreiberling

  • "XAX" is male

Posts: 207

Date of registration: Dec 25th 2004

2

Tuesday, June 6th 2006, 7:19pm

SELECT max(spalte) into variable FROM tabelle;

XAX

Junior Schreiberling

  • "XAX" is male

Posts: 207

Date of registration: Dec 25th 2004

3

Wednesday, June 7th 2006, 1:00pm

3a)
An der Stelle an der ich LAST_SUCESSORS rekursiv aufrufe bekomme ich folgenden Fehler:

15/5 PL/SQL: Statement ignored
15/5 PLS-00201: identifier 'LAST_SUCESSORS' must be declared

Wurde zum Thema Rekursion irgendwas in der Volresung gesagt?

Bei Squiggle bekomme ich jetzt immer ALLE Fehler angezeigt die in der user_errors Tabelle stehen, wie kann ich das abstellen.
Mit SQL*Plus zu arbeiten ist extrem nervig wenn man städnig show errors aufrufen muss.

masjanja

Praktikant

  • "masjanja" is female

Posts: 4

Date of registration: May 27th 2006

4

Wednesday, June 7th 2006, 10:25pm

In SQL-PLUS kannst du so schreiben:
deine Funktion
.
.
.
end;
/
show errors;

Dann siehst du die Funktion und die Fehler gleichzeitig. =)

XAX

Junior Schreiberling

  • "XAX" is male

Posts: 207

Date of registration: Dec 25th 2004

5

Wednesday, June 7th 2006, 11:05pm

Danke, das machts wenigstens etwas komfortabler.
Bin aber immer noch an einer Lösung für Squiggle interessiert.

CrissCross

Erfahrener Schreiberling

  • "CrissCross" is male

Posts: 282

Date of registration: Feb 15th 2005

6

Thursday, June 8th 2006, 8:57am

CPU-Problem bei Abfrage aus Aufgabe 2b?

Ich bekomme bei Aufgabe 2 b immer folgende Meldung:

jobs(person)='writer/actor'
*

ERROR at line 7:
ORA-02393: exceeded call limit on CPU usage
..

Die Funktion "jobs" funktioniert an sich gut. In der Funktion hole ich über ne Abfrage die gesuchten Jobs und verarbeite dann den Cursor-Inhalt in einer Schleife, indem ich einen String aus den Jobs aufbaue.

Hat jemand ne Idee wo der Fehler liegen könnte?
"Technology is easy - people are hard."

(John Gage - Sun Microsystems zum Thema warum IT-Projekte scheitern)

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

7

Thursday, June 8th 2006, 11:29am

RE: CPU-Problem bei Abfrage aus Aufgabe 2b?

Quoted

Original von CrissCross
ERROR at line 7:
ORA-02393: exceeded call limit on CPU usage
Die Fehlermeldung besagt, daß Du mehr CPU-Zeit für diese Anfrage/Berechnung brauchst als Dir laut Deinem Benutzerprofil (das nur der Administrator ändern kann) zusteht.

Also: Algorithmus optimieren. :)
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

This post has been edited 2 times, last edit by "Joachim" (Jun 8th 2006, 11:29am)


CrissCross

Erfahrener Schreiberling

  • "CrissCross" is male

Posts: 282

Date of registration: Feb 15th 2005

8

Thursday, June 8th 2006, 12:12pm

Quoted

Also: Algorithmus optimieren.


Jep, genau da lag auch das Problem. Ich hatte einen Sub-Select in der Funktion "jobs" benutzt, was bereits ohne Schleife zu einer Ausführungszeit von knapp 50 sec. führt - mit Schleife wurde natürlich die CPU-Zeit bei weitem überschritten :)
"Technology is easy - people are hard."

(John Gage - Sun Microsystems zum Thema warum IT-Projekte scheitern)

Jim Rakete

Trainee

  • "Jim Rakete" is male

Posts: 50

Date of registration: Jun 4th 2005

Occupation: Mathe/Informatik

9

Friday, June 9th 2006, 10:49am

Gibt es in SQL ein Kommando für Zeilenumbrüche, so daß ich für
BEGIN
DBMS_OUTPUT.PUT_LINE('Zeile 1' || 'Zeile 2');
END;
statt "Zeile 1Zeile 2" als Ausgabe
"Zeile 1
Zeile 2"
bekomme? Dann würde das Ergebnis von Aufgabe 3 b) natürlich netter aussehen..

Jojo

Trainee

  • "Jojo" is male

Posts: 94

Date of registration: Nov 16th 2005

Location: Foreign Recruit :)

Occupation: Programmierer

10

Friday, June 9th 2006, 11:15am

Das einzige was ich kenne ist, die separaten Zeilen in separaten DBMS_OUTPUT.PUT_LINE darzustellen, und dazwischen DBMS_OUTPUT.NEW_LINE() Sonst benutzt man auch <br> aber ich glaube das geht nur in WEB-Anwendungen weiss nicht genau
Mehr Bsp unter: http://www.psoug.org/reference/dbms_output.html



Ich habe auch eine frage: was bekommst du als Ergebniss in 3b) bei mir kommt
Enterprise eine TV Serie und wie verstehst du die erste Bem in der Aufgabestellung, dass ein Film mehrmals in der Ausgabe erscheinen kann, wie kann man das beheben

This post has been edited 3 times, last edit by "Jojo" (Jun 9th 2006, 11:42am)


XAX

Junior Schreiberling

  • "XAX" is male

Posts: 207

Date of registration: Dec 25th 2004

11

Friday, June 9th 2006, 11:52am

EDIT: Hat sich erledigt, es lag an einem dummen Tippfehler.

PS: Es gibt hier einfach nicht genügend Smilies um meine Emotionen auszudrücken...

This post has been edited 2 times, last edit by "XAX" (Jun 9th 2006, 12:16pm)


Jojo

Trainee

  • "Jojo" is male

Posts: 94

Date of registration: Nov 16th 2005

Location: Foreign Recruit :)

Occupation: Programmierer

12

Friday, June 9th 2006, 11:55am

Von der Fehlermeldung ist es nicht klar wo das Problem liegt. Scick die beiden Zeilen wo das Problem trifft

Jim Rakete

Trainee

  • "Jim Rakete" is male

Posts: 50

Date of registration: Jun 4th 2005

Occupation: Mathe/Informatik

13

Friday, June 9th 2006, 12:02pm

@jojo: ich bekomme als Ergebnis: Enterprise (tv series 2001) Star Trek: Nemesis (cinema 2002) - und hab's auch mal "per Hand" nachgerechnet, also mir immer die jeweiligen Nachfolger ab Film Nummer 221260 ausgeben lassen. Aber ich kann mir schon denken, wo dein Problem liegt, hatte dieses Ergebnis nämlich zunächst auch... Man muß gucken, was der Cursor macht, wenn mehr als ein Nachfolgefilm vorhanden ist - er darf nicht nur den ersten "weiterverfolgen".

@xax: Rekursion ist eigentlich nicht weiter wild, man konnte ja z.B. auch schon die Fibonacci-Zahlen auf Blatt 6 so erstellen. Ich habe eine PROCEDURE last_successors(fmovie NUMBER) und rufe sie dann rekursiv auf mit last_successors(neuer_wert) - vielleicht ist es bei dir ja sogar nur ein Schreibfehler (identifier 'LAST_SUCESSORS' - da fehlt ein c!)

Jojo

Trainee

  • "Jojo" is male

Posts: 94

Date of registration: Nov 16th 2005

Location: Foreign Recruit :)

Occupation: Programmierer

14

Friday, June 9th 2006, 12:11pm

das klingt logisch, aber mir ist es schwer es vorzustellen wie das realisiert wuerde :) Wenn ich den Cursor immer wieder rekursiv auffrufe er "fetcht" nur eine Zeile, bei mir ist es mindestens so Oder soll ich eine Schleife dazu baue??
Aber dann kriege ich eine Rekursion in einer Schleife :(

iriania

Junior Schreiberling

  • "iriania" is female

Posts: 222

Date of registration: Nov 24th 2003

Location: Waqwaq

Occupation: Wie? Ich studiere? seit wann denn?

15

Thursday, June 15th 2006, 10:23pm

bei Aufgabe 2b bekomme ich als Ergebnis
'no rows selected', wenn jobs(person)='writer/actor'
wenn ich dagegen als jobs(person) ENTWEDER 'writer'
oder 'actor' nehme, kommt eine lange Liste von Namen heraus
woran könnte das liegen?
:(
(1a gibt mir bei Woody Allen das gewünschte Ergebnis, funktioniert also...)

edit: alles klar, lag nur daran, dass ich ein Leerzeichen vergaß
('writer/ actor' funktioniert!)
:D

40 Namen kommen bei mir raus. Stimmt die Zahl?
...und sie dreht sich doch!

This post has been edited 2 times, last edit by "iriania" (Jun 15th 2006, 10:40pm)


XAX

Junior Schreiberling

  • "XAX" is male

Posts: 207

Date of registration: Dec 25th 2004

16

Friday, June 16th 2006, 12:04am

jo