Spring JdbcTemplate 调用 Oracle 存储过程实现 CRUD
1.编写存储过程
a) Oracle 存储过程模糊查询
--
模糊查询 返回多条数据
CREATE OR REPLACE PROCEDURE P_EMP_SELECT
(
RESULTLIST OUT SYS_REFCURSOR,
V_ID IN NUMBER,
V_NAME IN VARCHAR2
)
IS
SQL_STR VARCHAR2(500);
BEGIN
SQL_STR:='SELECT * FROM EMP WHERE 1=1 ';
DBMS_OUTPUT.put_line('V_ID='||V_ID || ' V_NAME='||V_NAME);
IF(V_ID<>0) THEN
BEGIN
SQL_STR:=SQL_STR || ' AND EMPNO>= ' || V_ID;
END;
END IF;
IF(V_NAME IS NOT NULL) THEN --
判断字符串是否为空
BEGIN
SQL_STR:=SQL_STR || ' AND ENAME LIKE '''|| V_NAME ||'%'' '; --
字符串是四个单引号
''A%''
END;
END IF;
DBMS_OUTPUT.put_line(' SQL_STR:'||SQL_STR);--
输出
SQL
语句
OPEN RESULTLIST FOR SQL_STR;
END;
--
测试
DECLARE
MYCRS SYS_REFCURSOR;--
注意这里用分号;
V_EMP EMP%ROWTYPE;
BEGIN
--
调用过程,返回的是已经打开的
CURSOR
P_EMP_SELECT(MYCRS,0,'');
LOOP
FETCH MYCRS INTO V_EMP;