Heim > Datenbank > MySQL-Tutorial > Warum erhalte ich in meinem PL/SQL-Code die Fehlermeldung „PLS-00428: In dieser SELECT-Anweisung fehlt eine INTO-Klausel'?

Warum erhalte ich in meinem PL/SQL-Code die Fehlermeldung „PLS-00428: In dieser SELECT-Anweisung fehlt eine INTO-Klausel'?

DDD
Freigeben: 2025-01-01 06:42:10
Original
898 Leute haben es durchsucht

Why am I getting the

"PLS-00428: INTO-Klausel fehlt in der Select-Anweisung"

Um eine Rownum als Variable abzurufen, anstatt einen kostspieligen Join zu verwenden, Es muss eine SELECT-Anweisung verwendet werden, da die Zeilennummer je nach Umgebung variieren kann und nicht als statische Zeichenfolge innerhalb dargestellt werden kann Code.

Leider führt der Versuch, diese Abfrage in Toad und Oracle SQL Developer auszuführen, zu folgendem Fehler:

"PLS-00428: In dieser SELECT-Anweisung wird eine INTO-Klausel erwartet"

Dieser Fehler ist auf die Tatsache zurückzuführen, dass in PL/SQL-Blöcken Variablen in SELECT-Anweisungen explizit Spalten zugewiesen werden müssen. Dies unterscheidet sich von SQL-Anweisungen, bei denen auf Spaltenwerte direkt verwiesen werden kann.

Das Problem im bereitgestellten Code liegt in der SQL-Anweisung des zweiten BEGIN-Blocks, der eine INTO-Klausel fehlt. Dieses Versäumnis löst den Fehler aus. Um dies zu beheben, muss der Code wie folgt geändert werden:

DECLARE
   PROD_ROW_ID   VARCHAR (10) := NULL;
   VIS_ROW_ID    NUMBER;
   DSC           VARCHAR (512);
BEGIN
   SELECT ROW_ID
     INTO VIS_ROW_ID
     FROM SIEBEL.S_PROD_INT
    WHERE PART_NUM = 'S0146404';

   BEGIN
      SELECT    RTRIM (VIS.SERIAL_NUM)
             || ','
             || RTRIM (PLANID.DESC_TEXT)
             || ','
             || CASE
                   WHEN PLANID.HIGH = 'TEST123'
                   THEN
                      CASE
                         WHEN TO_DATE (PROD.START_DATE) + 30 > SYSDATE
                         THEN
                            'Y'
                         ELSE
                            'N'
                      END
                   ELSE
                      'N'
                END
             || ','
             || 'GB'
             || ','
             || RTRIM (TO_CHAR (PROD.START_DATE, 'YYYY-MM-DD'))
        INTO DSC
        FROM SIEBEL.S_LST_OF_VAL PLANID
             INNER JOIN SIEBEL.S_PROD_INT PROD
                ON PROD.PART_NUM = PLANID.VAL
             INNER JOIN SIEBEL.S_ASSET NETFLIX
                ON PROD.PROD_ID = PROD.ROW_ID
             INNER JOIN SIEBEL.S_ASSET VIS
                ON VIS.PROM_INTEG_ID = PROD.PROM_INTEG_ID
             INNER JOIN SIEBEL.S_PROD_INT VISPROD
                ON VIS.PROD_ID = VISPROD.ROW_ID
       WHERE     PLANID.TYPE = 'Test Plan'
             AND PLANID.ACTIVE_FLG = 'Y'
             AND VISPROD.PART_NUM = VIS_ROW_ID
             AND PROD.STATUS_CD = 'Active'
             AND VIS.SERIAL_NUM IS NOT NULL;
   END;
END;
/
Nach dem Login kopieren

Durch das Hinzufügen der INTO-Klausel werden nun die Spalten in der Select-Anweisung den entsprechenden Variablen zugewiesen, wodurch der Fehler behoben wird.

Referenzen

  • [Oracle-Dokumentation zu INTO Klausel](http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/static.htm#LNPLS00601)
  • [Oracle-Dokumentation zu SELECT INTO Anweisung](http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/selectinto_statement.htm#CJAJAAIG)
  • [ORA-Code-Dokumentation zu PLS-00428](http:// pls-00428.ora-code.com/)

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in meinem PL/SQL-Code die Fehlermeldung „PLS-00428: In dieser SELECT-Anweisung fehlt eine INTO-Klausel'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage