通过类似于数组的索引动态访问游标列

时间:2014-03-26 07:55:47

标签: oracle plsql

我有这个我需要转换为PL SQL的js代码。下面我还包括我自己的此代码的PL SQL转换版本,但它有一些错误。非常感谢任何帮助。感谢

原始JavaScript代码

for (var i=2; i<nsArray.length; i++) {
     if (weight<nsArray[i]) {

      whLowerLimit = nsArray[i-1];
      whUpperLimit = nsArray[i];

         }
       }

这是我到目前为止所做的事情

Create Procedure

V_CUR_NSLOOKUP SYS_REFCURSOR;
V_NSLOOKUP MRWTHTPCT%ROWTYPE;

V_HEIGHT number;
V_WHLOWERLIMIT number;
V_WHUPPERLIMIT number;

Begin

    FOR I IN 3..V_NSLOOKUP.COUNT 
       LOOP
           IF V_WEIGHT < V_NSLOOKUP.(COLUMN_NAME) THEN 
              V_WHLOWERLIMIT := V_NSLOOKUP(COLUMN_NAME - 1);
              V_WHUPPERLIMIT := V_NSLOOKUP(COLUMN_NAME);

      END IF
     END LOOP; 
END

1 个答案:

答案 0 :(得分:1)

我能想到的唯一方法是将列名存储在单独的数组中。您可以通过all_tab_columns视图获取表的列名:

DECLARE
  TYPE columns_names IS TABLE OF VARCHAR2(50);
  v_columns columns_names;
BEGIN
  SELECT column_name
  BULK COLLECT INTO v_columns
  FROM all_tab_columns 
  WHERE table_name = 'TABLE_NAME';

  -- Do your stuff...  

END;