"ORA-01422: esatto recuperare rendimenti più di numero richiesto di righe" sto ottenendo questo errore durante l'esecuzione il mio blocco

voti
0

Ho wannt per visualizzare 4 colonne con blocco plsql e non sono in grado di eseguire il codice che ho suggerimenti written.Any?

   DECLARE
    rsid    objectbase.asset_id%TYPE;
    obid    i18n_objectbase.object_id%TYPE;
    nme     i18n_objectbase.name%TYPE;
    descp   i18n_objectbase.short_description%TYPE;
BEGIN
    SELECT
        ob.asset_id,
        o.object_id,
        o.name,
        o.short_description
    INTO
        rsid,
        obid,
        nme,
        descp
    FROM
        objectbase        ob
        JOIN i18n_objectbase   o ON ( ob.object_id = o.object_id );

    dbms_output.put_line(rsid
                         || obid
                         || nme
                         || descp);
END;
/
È pubblicato 24/10/2019 alle 11:55
fonte dall'utente
In altre lingue...                            


1 risposte

voti
0

Qualcosa di simile a questo sarebbe fare il trucco, ma non sono sicuro perché avrete bisogno di questo tipo di codice PL SQL (Si prega di notare che ho semplificato la cui parte) ... Eccolo:

DECLARE
   rsid    varchar2(100);
   obid    varchar2(100);
   nme     varchar2(100);
   descp   varchar2(100);

   cursor c_test
   is
   SELECT ob.asset_id
          , ob.object_id
          , ob.name
          , ob.short_description
   FROM objectbase ob;
BEGIN

   FOR i in c_test loop

      rsid := i.asset_id;
      obid := i.object_id;
      nme := i.name;
      descp := i.short_description;

      dbms_output.put_line(rsid
                        || obid
                        || nme
                        || descp);

   END LOOP;
END;

Ecco la DEMO

Quindi utilizzare questo:

DECLARE
    rsid    varchar2(100);
    obid    varchar2(100);
    nme     varchar2(100);
    descp   varchar2(100);

BEGIN
    FOR i IN (SELECT  ob.asset_id
                      , ob.object_id 
                      , ob.name
                      , ob.short_description
              FROM objectbase ob) LOOP

       rsid := i.asset_id;
       obid := i.object_id;
       nme := i.name;
       descp := i.short_description;

       dbms_output.put_line(rsid
                         || obid
                         || nme
                         || descp);

    END LOOP;
END;
/

Ecco la DEMO

E qui è il codice con le tabelle e colonne:

DECLARE
    rsid    objectbase.asset_id%TYPE;
    obid    i18n_objectbase.object_id%TYPE;
    nme     i18n_objectbase.name%TYPE;
    descp   i18n_objectbase.short_description%TYPE;
BEGIN

    FOR i IN (SELECT
        ob.asset_id,
        o.object_id,
        o.name,
        o.short_description
    FROM
        objectbase ob
        JOIN i18n_objectbase o ON ( ob.object_id = o.object_id )) loop

        rsid := i.asset_id;
        obid := i.object_id;
        nme := i.name;
        descp := i.short_description;

        dbms_output.put_line(rsid
                         || obid
                         || nme
                         || descp);
    END LOOP;
END;
Risposto il 24/10/2019 a 13:00
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more