Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Wo liegt der Fehler??? PL SQL

Empfohlene Antworten

Veröffentlicht

Hallo,

ich habe folgendes Problem. Ich möchte gerne nach bestimmten Krieterien meine komplette Datenbank absuchen. Dazu existiert eine Tabelle, die alle Tabellen und die Spalten beeinhaltet. So weit so gut!

Folgender PL/SQL Code soll mir die Tabellen ausgeben, die das Suchwort enthalten.


set serveroutput on;

DECLARE

  cursor C_TableNames is

  select table_name, column_name from dba_tab_columns where  data_type='VARCHAR2' and Owner='TINA';   


  v_TableName          varchar2(100):=NULL;

  v_ColumnName        varchar2(100):=NULL;  

  executeString         varchar2(256):=NULL;


BEGIN

  open C_TableNames;

  dbms_output.enable(1000000);

  loop

    fetch C_TableNames into v_TableName, v_ColumnName;

    exit when C_TableNames%NOTFOUND; 

      executeString := 'Select '''|| v_TableName  ||''' as Tabelle from '||  

v_TableName ||' where '|| v_ColumnName ||'=''SUCHWORT'';

      DBMS_OUTPUT.put_line(executeString); 

      execute immediate (executeString);

  end loop; 

  close C_TableNames;

END;

/


Führe ich den Code aus, dann sagt er mir:Fehlerbericht:

ORA-00933: SQL command not properly ended

ORA-06512: at line 20

00933. 00000 - "SQL command not properly ended"

Was will er? :confused: Ein Semikolon in den executeString einbauen? Dann sagt er : invalid charakter

Danke schonmal im Voraus!:)

Bearbeitet von silvi1987

Hallo dr. dimitri,

leider immer noch das gleiche Problem. Hatte im Originalcode auch das dritte ' dabei. Muss ausversehen flöten gegangen sein :old

Also bei mri kommt immer noch folgende Meldung:


Fehler beim Start in Zeile 2 in Befehl:

DECLARE

  cursor C_TableNames is

  select table_name, column_name from dba_tab_columns where  data_type='VARCHAR2' and Owner='TINA';   


  v_TableName          varchar2(100):=NULL;

  v_ColumnName        varchar2(100):=NULL;  

  executeString         varchar2(256):=NULL;


BEGIN

  open C_TableNames;

  dbms_output.enable(1000000);

  loop

    fetch C_TableNames into v_TableName, v_ColumnName;

    exit when C_TableNames%NOTFOUND; 

      executeString := 'Select '''|| v_TableName  ||''' as Tabelle from '|| v_TableName ||' where '|| v_ColumnName ||'=''SUCHWORT'';

      DBMS_OUTPUT.put_line(executeString); 

      execute immediate (executeString);

  end loop; 

  close C_TableNames;

END;

Fehlerbericht:

ORA-00933: SQL command not properly ended

ORA-06512: at line 17

00933. 00000 -  "SQL command not properly ended"

:(

Hallo,

also nach langem rumprobieren hat sich herausgestellt, dass es funktioniert, allerdings das exit nicht richtig greift und er daher rummault.

Das neue Problem besteht nun aber darin, dass ich mir die Ergebnismenge nicht anzeigen lassen kann. Ich hatte gehofft, dass ein execute immediate with result set on funktioniert. Falsch gehofft! :eek Geht scheinbar nicht.

Gibt es noch eine Möglichkeit?

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.