-----创建序列
create sequence book_id
INCREMENT BY 1 -- 每次加几个
START WITH 001 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10;
------创建books表
create table books(
books_id number,
books_name varchar2(100),
price number,
qty number,
pub varchar2(200)
);
-------------往books表中插入数据
insert into books values(book_id.nextval,'中国文学1',39,12,'人民文学');
insert into books values(book_id.nextval,'中国文学2',30,32,'人民文学');
insert into books values(book_id.nextval,'中国文学3',59,22,'清华大学');
insert into books values(book_id.nextval,'中国文学4',33,52,'清华大学');
insert into books values(book_id.nextval,'中国文学5',99,62,'电子工业');根据书名,利用游标,怎么返回所查询的结果,代码怎么写
create sequence book_id
INCREMENT BY 1 -- 每次加几个
START WITH 001 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10;
------创建books表
create table books(
books_id number,
books_name varchar2(100),
price number,
qty number,
pub varchar2(200)
);
-------------往books表中插入数据
insert into books values(book_id.nextval,'中国文学1',39,12,'人民文学');
insert into books values(book_id.nextval,'中国文学2',30,32,'人民文学');
insert into books values(book_id.nextval,'中国文学3',59,22,'清华大学');
insert into books values(book_id.nextval,'中国文学4',33,52,'清华大学');
insert into books values(book_id.nextval,'中国文学5',99,62,'电子工业');根据书名,利用游标,怎么返回所查询的结果,代码怎么写
解决方案 »
- 问个游标与rownum的问题
- 求助(面试题)-oracle存储过程执行效率的问题
- 有心上进无路走
- oracle 返回前新增记录的序列值
- oracle服务器有些慢,帮忙看看,进程有没有问题?
- ORACLE 9I 的一个产题。
- 请教一个关于update的问题!(有请高人)
- 一个Oracle 7.3.4下proc数组查询的小问题(100)
- 请教高手,给高分
- 在VB开发环境下运行正常,但编译成exe可执行文件后运行提示:"运行时错误-2147467259(80004005) ORA-06413:连接未打开" 该如何解决?
- oracle中出现“sp2-0042:未知命令“scott”-其余行忽略””
- 求oracle储存过程实例
bookname varchar2(100);
begin
select books_name into bookname from books where books_id = bookid;
dbms_output.put_line(bookbname);
end;
end getBookNameById;这个查询是一条怎么模糊查询,得到结果所匹配的那个字段
若是返回多 条记录的话,举例如下:
create or replace package PKG_Report is TYPE Result_Cur is REF CURSOR;
--请假明细表 可按部门号、工号、姓名、假别、状态、请假时间段等来查询
PROCEDURE SP_Rpt_Leave(p_Org_ID varchar2,p_Employee_No varchar2,p_Employee_Name varchar2,p_Type_No VARCHAR2,p_Flow_Status varchar2,p_Date_Begin DATE,p_Date_End DATE,p_Result out Result_Cur);end;
create or replace package body PKG_Report IS
PROCEDURE SP_Rpt_Leave(p_Org_ID varchar2,p_Employee_No varchar2,p_Employee_Name varchar2,p_Type_No VARCHAR2,p_Flow_Status varchar2,p_Date_Begin DATE,p_Date_End DATE,p_Result out Result_Cur) IS
v_SQL VARCHAR2(4000);
v_Date_Begin VARCHAR2(20);
v_Date_End VARCHAR2(20);
BEGIN
v_SQL :='SELECT t4.org_id 部门编号,t4.org_name 部门名称,t2.employee_no 工号,t3.employee_name 姓名
,t5.type_name 假别,t2.time_begin 开始时间,t2.time_end 结束时间,t2.leave_hours 请假时长
,t2.leave_reason 请假原因,t1.form_no 请假单号,t1.update_user 申请人,t1.update_date 申请时间
,t1.flow_status 审核状态
FROM oa_att_leave t1
INNER JOIN oa_att_leave_d t2 ON t1.form_id=t2.form_id
INNER JOIN oa_hr_machi_employee t3 ON t3.employee_no=t2.employee_no
INNER JOIN oa_hr_org t4 ON t3.org_id=t4.org_id
INNER JOIN oa_att_leave_type t5 ON t5.type_no=t2.type_no
WHERE t3.org_id IN ('||p_Org_ID||')';
IF NVL(p_Employee_No,' ')<>' ' THEN
v_SQL := v_SQL || ' AND t2.employee_no like ''%'||nvl(p_Employee_No,'%')||'%''';
END IF;
IF NVL(p_Employee_Name,' ')<>' ' THEN
v_SQL := v_SQL || ' AND t2.employee_name like ''%'||nvl(p_Employee_Name,'%')||'%''';
END IF;
IF p_Type_No IS NOT NULL THEN
v_SQL := v_SQL || ' AND t2.type_no IN ('||p_Type_No||')';
END IF;
IF p_Flow_Status IS NOT NULL THEN
v_SQL := v_SQL || ' AND t1.flow_status IN ('||p_Flow_Status||')';
END IF;
IF p_Date_End IS NOT NULL THEN
v_Date_End :=to_char(p_Date_End,'yyyy-mm-dd');
v_SQL := v_SQL ||' AND to_char(t2.time_begin,''yyyy-mm-dd'')<='''|| v_Date_End||'''';
IF p_Date_Begin IS NOT NULL THEN --查询该区间内所有请假的人
v_Date_Begin :=to_char(p_Date_Begin,'yyyy-mm-dd');
v_SQL := v_SQL || ' AND to_char(t2.time_begin,''yyyy-mm-dd'')>='''|| v_Date_Begin|| '''';
END IF;
ELSE --查询当前时间(即开始时间)所有请假的人
IF p_Date_Begin IS NOT NULL THEN
v_Date_Begin :=to_char(p_Date_Begin,'yyyy-mm-dd');
v_SQL := v_SQL || ' AND to_char(t2.time_begin,''yyyy-mm-dd'')<='''|| v_Date_Begin|| '''';
v_Date_Begin :=to_char(p_Date_Begin,'yyyy-mm-dd');
v_SQL := v_SQL || ' AND to_char(t2.time_begin,''yyyy-mm-dd'')>='''|| v_Date_Begin|| '''';
END IF;
END IF;
v_SQL := v_SQL||' ORDER BY t4.sort_id'; open p_Result for v_SQL ;
END SP_Rpt_Leave;
end; --end package