0
嘿人即時得到一個SQL錯誤一路底部 在代碼塊結束時,執行語句之前:PL/SQL缺少右括號
語句:= v_first_sql || stmt || v_order_by_sql || v_last_sql;
什麼我做錯了什麼想法?
感謝
FUNCTION search_data
(
p_start_ind IN NUMBER,
p_end_ind IN NUMBER,
p_cols_sort_by IN char_tab,
p_sort_orders IN char_tab,
p_sor_number IN VARCHAR2,
p_tcn IN VARCHAR2,
p_sock IN NUMBER,
p_work_id IN NUMBER,
p_sap in NUMBER
)
RETURN bean_list
IS
stmt VARCHAR2(4000);
result bean_list;
v_jp_ids VARCHAR2(50);
v_first_sql VARCHAR2(512);
v_row_count NUMBER;
BEGIN
v_row_count := p_end_index - p_start_index + 1;
v_first_sql := 'BEGIN ';
v_first_sql := v_first_sql || ' SELECT item_search(id, mwslin,sor_code, fyear, wyear,';
v_first_sql := v_first_sql || ' sock, tcn, non, nomen,sap';
v_first_sql := v_first_sql || ' row_count)';
v_first_sql := v_first_sql || ' BULK COLLECT INTO :bind_var1';
v_first_sql := v_first_sql || ' FROM';
v_first_sql := v_first_sql || ' (';
v_first_sql := v_first_sql || ' SELECT /*+ FIRST_ROWS(' || TO_CHAR(v_row_count) || ') */ ';
v_first_sql := v_first_sql || ' ROWNUM rnum, a.*';
v_first_sql := v_first_sql || ' FROM';
v_first_sql := v_first_sql || ' (';
v_first_sql := v_first_sql || ' SELECT ob.*, COUNT(*) OVER() AS row_count';
v_first_sql := v_first_sql || ' FROM';
v_first_sql := v_first_sql || ' (';
v_order_by_sql := ') ob ' || temp_pkg.get_number_by(p_columns_sort_by, p_sort_orders);
v_last_sql := ') a';
v_last_sql := v_last_sql || ' WHERE rownum <= ' || TO_CHAR(p_end_index);
v_last_sql := v_last_sql || ')';
v_last_sql := v_last_sql || ' WHERE rnum >= ' || TO_CHAR(p_start_index);
v_last_sql := v_last_sql || ' ORDER BY rnum;';
v_last_sql := v_last_sql || ' END;';
stmt := v_first_sql || stmt
EXECUTE IMMEDIATE stmt USING OUT result;
RETURN result;
END search_data;
如何顯示您的字符串'stmt'的值? –
在嘗試執行之前,您能否打印出或以其他方式查看'stmt'的內容?看起來你很可能錯過了關閉某個地方的人。 –
嗯..不知道如何輸出stmt ...我通常寫java ... sql的人出來的一週...大聲笑:) –