问题描述
PROCEDURE SP_SEARCH_ORDERS(
O_RESULT OUT SYS_REFCURSOR,
P_ORDERDATE DATE,
P_USER VARCHAR2,
P_ORDERSTATUS VARCHAR2 ,
P_PAYMENTSTATUS VARCHAR2
)
AS
STMT VARCHAR2(4000);
BEGIN
STMT:='SELECT * FROM TBL_ORDERS ODR JOIN TBL_ORDERBILLING_SHIPPING ODRBILLSHIP';
如果P_ORDERDATE不为空那么
STMT:= STMT || '和ODR.ORDER_DATE一样''%'|| P_ORDERDATE || '%''';
结束IF;
如果P_USER不为空那么
STMT:= STMT || '和ODRBILLSHIP.S_FNAME喜欢''%'|| P_USER || '%''';
结束IF;
如果P_ORDERSTATUS不为空那么
STMT:= STMT || '和ODR.ORDER_STATUS一样''%'|| P_ORDERSTATUS || '%''';
结束IF;
如果P_PAYMENTSTATUS不为空那么
STMT:= STMT || '和ODR.PAYMENT_STATUS一样''%'|| P_PAYMENTSTATUS || '%''';
结束IF;
执行即时STMT;
- DBMS_OUTPUT.PUT_LINE(STMT);
END SP_SEARCH_ORDERS;
如何执行字符串查询,其给出的错误是缺少关键字。
任何帮助,
这篇关于如何在oracle中实现动态字符串查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!