Domanda

Ho problemi con chiedendo la mia procedura. Oracle SCRAMS

  

PLS-00306 Errore:. Numero errato di tipi di argomenti nella chiamata alla procedura

Con la mia procedura di dichiarazione tipo ha esattamente la stessa dichiarazione come nella intestazione di seguito. Se corro come procedura separata funziona, quando lavoro in un'interfaccia ODCI per la creazione dell'indice estensibile, getta PLS-00306.

MEMBER PROCEDURE FILL_TREE_LVL
     (target_column VARCHAR2, cur_lvl NUMBER, max_lvl NUMBER, 
     parent_rect NUMBER,start_x NUMBER, start_y NUMBER,
     end_x NUMBER, end_y NUMBER) 
IS                          
    stmt VARCHAR2(2000);
    rect_id NUMBER;
    diff_x NUMBER;
    diff_y NUMBER;
    new_start_x NUMBER;
    new_end_x NUMBER;
    i NUMBER;
    j NUMBER;
 BEGIN
{...}   
 END FILL_TREE_LVL;


 STATIC FUNCTION ODCIINDEXCREATE 
   (ia SYS.ODCIINDEXINFO, parms VARCHAR2, env SYS.ODCIEnv) RETURN NUMBER
IS  
  stmt   VARCHAR2(2000);
  stmt2 VARCHAR2(2000);
  min_x NUMBER;
  max_x NUMBER;
  min_y NUMBER;
  max_y NUMBER;
  lvl NUMBER;
  rect_id NUMBER;
  pt_tab VARCHAR2(50);
  rect_tab VARCHAR2(50);
  cnum NUMBER;
  TYPE point_rect is RECORD(
    point_id NUMBER,
    rect_id NUMBER
  );
  TYPE point_rect_tab IS TABLE OF point_rect;
  pr_table point_rect_tab;

  BEGIN

  {...}
  FILL_TREE_LVL('any string', 0, lvl,0, min_x, min_y, max_x, max_y);
  {...}

  END;
È stato utile?

Soluzione

Non ho esperienza in PL / SQL OOP, ma credo che il problema si verifica perché si tenta di chiamare una procedura membro da una funzione statica. Una procedura membro deve sempre contesto di un oggetto, che manca nella chiamata.

Altri suggerimenti

appare come vi state perdendo un parametro, probabilmente parent_rect sto cercando di indovinare:

FILL_TREE_LVL(target_column VARCHAR2,
              cur_lvl NUMBER,
              max_lvl NUMBER,
              parent_rect NUMBER,
              start_x NUMBER,
              start_y NUMBER,
              end_x NUMBER,
              end_y NUMBER)

FILL_TREE_LVL('any string', --target_column
              0, --cur_lvl
              lvl, --max_lvl
              min_x, --parent_rect
              min_y, --start_x
              max_x, --start_y
              max_y  --end_x
                     --end_y ???
             );
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top