31: --
32: l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
33: --
34: BEGIN
35: l_cursor_id := DBMS_SQL.OPEN_CURSOR;
36: l_where_clause := p_table_r.where_clause;
37:
38: IF instr(upper(l_where_clause),'WHERE ') > 0 then
39: --to include the id column name in the query
79: l_cols := l_cols || ', NULL ';
80: END IF;
81:
82: l_selectstmt := 'SELECT '||l_cols||' FROM '||p_table_r.table_name||' '||l_where_clause;
83: DBMS_SQL.PARSE(l_cursor_id,l_selectstmt,DBMS_SQL.NATIVE);
84:
85: -- Bind variable
86: DBMS_SQL.BIND_VARIABLE(l_cursor_id,':p1',p_code);
87: -- Bind the input variables
82: l_selectstmt := 'SELECT '||l_cols||' FROM '||p_table_r.table_name||' '||l_where_clause;
83: DBMS_SQL.PARSE(l_cursor_id,l_selectstmt,DBMS_SQL.NATIVE);
84:
85: -- Bind variable
86: DBMS_SQL.BIND_VARIABLE(l_cursor_id,':p1',p_code);
87: -- Bind the input variables
88: DBMS_SQL.DEFINE_COLUMN(l_cursor_id,1,l_value,240);
89: DBMS_SQL.DEFINE_COLUMN(l_cursor_id,2,l_meaning,240);
90: DBMS_SQL.DEFINE_COLUMN(l_cursor_id,3,l_id,240);
84:
85: -- Bind variable
86: DBMS_SQL.BIND_VARIABLE(l_cursor_id,':p1',p_code);
87: -- Bind the input variables
88: DBMS_SQL.DEFINE_COLUMN(l_cursor_id,1,l_value,240);
89: DBMS_SQL.DEFINE_COLUMN(l_cursor_id,2,l_meaning,240);
90: DBMS_SQL.DEFINE_COLUMN(l_cursor_id,3,l_id,240);
91:
92: l_retval := DBMS_SQL.EXECUTE(l_cursor_id);
85: -- Bind variable
86: DBMS_SQL.BIND_VARIABLE(l_cursor_id,':p1',p_code);
87: -- Bind the input variables
88: DBMS_SQL.DEFINE_COLUMN(l_cursor_id,1,l_value,240);
89: DBMS_SQL.DEFINE_COLUMN(l_cursor_id,2,l_meaning,240);
90: DBMS_SQL.DEFINE_COLUMN(l_cursor_id,3,l_id,240);
91:
92: l_retval := DBMS_SQL.EXECUTE(l_cursor_id);
93:
86: DBMS_SQL.BIND_VARIABLE(l_cursor_id,':p1',p_code);
87: -- Bind the input variables
88: DBMS_SQL.DEFINE_COLUMN(l_cursor_id,1,l_value,240);
89: DBMS_SQL.DEFINE_COLUMN(l_cursor_id,2,l_meaning,240);
90: DBMS_SQL.DEFINE_COLUMN(l_cursor_id,3,l_id,240);
91:
92: l_retval := DBMS_SQL.EXECUTE(l_cursor_id);
93:
94: LOOP
88: DBMS_SQL.DEFINE_COLUMN(l_cursor_id,1,l_value,240);
89: DBMS_SQL.DEFINE_COLUMN(l_cursor_id,2,l_meaning,240);
90: DBMS_SQL.DEFINE_COLUMN(l_cursor_id,3,l_id,240);
91:
92: l_retval := DBMS_SQL.EXECUTE(l_cursor_id);
93:
94: LOOP
95: -- Fetch rows in to buffer and check the exit condition from the loop
96: IF( DBMS_SQL.FETCH_ROWS(l_cursor_id) = 0) THEN
92: l_retval := DBMS_SQL.EXECUTE(l_cursor_id);
93:
94: LOOP
95: -- Fetch rows in to buffer and check the exit condition from the loop
96: IF( DBMS_SQL.FETCH_ROWS(l_cursor_id) = 0) THEN
97: EXIT;
98: END IF;
99:
100: -- Retrieve the rows from buffer into PLSQL variables
97: EXIT;
98: END IF;
99:
100: -- Retrieve the rows from buffer into PLSQL variables
101: DBMS_SQL.COLUMN_VALUE(l_cursor_id,1,l_value);
102: DBMS_SQL.COLUMN_VALUE(l_cursor_id,2,l_meaning);
103: DBMS_SQL.COLUMN_VALUE(l_cursor_id,3,l_id);
104: IF l_id IS NOT NULL AND (p_code = l_id) THEN
105: --DBMS_SQL.CLOSE_CURSOR(l_cursor_id);
98: END IF;
99:
100: -- Retrieve the rows from buffer into PLSQL variables
101: DBMS_SQL.COLUMN_VALUE(l_cursor_id,1,l_value);
102: DBMS_SQL.COLUMN_VALUE(l_cursor_id,2,l_meaning);
103: DBMS_SQL.COLUMN_VALUE(l_cursor_id,3,l_id);
104: IF l_id IS NOT NULL AND (p_code = l_id) THEN
105: --DBMS_SQL.CLOSE_CURSOR(l_cursor_id);
106: x_value := l_value;
99:
100: -- Retrieve the rows from buffer into PLSQL variables
101: DBMS_SQL.COLUMN_VALUE(l_cursor_id,1,l_value);
102: DBMS_SQL.COLUMN_VALUE(l_cursor_id,2,l_meaning);
103: DBMS_SQL.COLUMN_VALUE(l_cursor_id,3,l_id);
104: IF l_id IS NOT NULL AND (p_code = l_id) THEN
105: --DBMS_SQL.CLOSE_CURSOR(l_cursor_id);
106: x_value := l_value;
107: ELSIF (p_code = l_value) THEN
101: DBMS_SQL.COLUMN_VALUE(l_cursor_id,1,l_value);
102: DBMS_SQL.COLUMN_VALUE(l_cursor_id,2,l_meaning);
103: DBMS_SQL.COLUMN_VALUE(l_cursor_id,3,l_id);
104: IF l_id IS NOT NULL AND (p_code = l_id) THEN
105: --DBMS_SQL.CLOSE_CURSOR(l_cursor_id);
106: x_value := l_value;
107: ELSIF (p_code = l_value) THEN
108: --DBMS_SQL.CLOSE_CURSOR(l_cursor_id);
109: IF l_meaning IS NOT NULL THEN
104: IF l_id IS NOT NULL AND (p_code = l_id) THEN
105: --DBMS_SQL.CLOSE_CURSOR(l_cursor_id);
106: x_value := l_value;
107: ELSIF (p_code = l_value) THEN
108: --DBMS_SQL.CLOSE_CURSOR(l_cursor_id);
109: IF l_meaning IS NOT NULL THEN
110: x_value := l_meaning;
111: ELSE
112: x_value := l_value;
116: --value does notmatch, continue search
117: END IF;
118:
119: END LOOP;
120: DBMS_SQL.CLOSE_CURSOR(l_cursor_id);
121: EXCEPTION
122: WHEN OTHERS THEN
123: oe_debug_pub.add('Get_value_from_table exception');
124: DBMS_SQL.CLOSE_CURSOR(l_cursor_id);
120: DBMS_SQL.CLOSE_CURSOR(l_cursor_id);
121: EXCEPTION
122: WHEN OTHERS THEN
123: oe_debug_pub.add('Get_value_from_table exception');
124: DBMS_SQL.CLOSE_CURSOR(l_cursor_id);
125:
126: END Get_Value_from_Table;
127:
128: -- Start of comments