--以下存储过程 实现了,输入参数 0,找出对应数据表中性别 为难的记录,输入参数 为1,找出性别为女的,输入其--它,找出性别一栏为空的记录
create or replace procedure P_TEST_SQL1(val number)
isTYPE ref_cursor_type IS REF CURSOR;
v_sex zhouqi_0208.sex%type;
v_sql varchar2(1000);
v_sal zhouqi_0208%rowtype;
usrs ref_cursor_type;
begin
if val=0 then
v_sex :='男';
--在单引号中再添加 单引号,要用两个单引号
v_sql := 'select * from zhouqi_0208 where sex='''||v_sex||'''';elsif val=1 then
v_sex :='女';
v_sql := 'select * from zhouqi_0208 where sex='''||v_sex||'''';
else
v_sql := 'select * from zhouqi_0208 where sex is null';
end if;
--打开游标
open usrs for v_sql ;
loop
fetch usrs into v_sal;
exit when usrs%notfound;
dbms_output.put_line('name:'||v_sal.name||'sex:'||v_sal.sex||'job:'||v_sal.job||'age:'||v_sal.age||'salary:'||v_sal.salary);
end loop;
close usrs;
end P_TEST_SQL1;
****************************************************
select lastname || 'work in' || department_id from tablename;
select last_name ||
'''s salary
is ' || sa
lary 员工月薪 from employ
ees;
~~~
注:在单引号中还要使用单引号的话,就必须使用两个单引号来实现一个单引号的功能。
**********************************
create or replace procedure PRU_TEST
is
insert_str varchar2(200);
begin
insert_str := 'insert into profession_skill values(9,''无心'',1,''10000'')';
execute immediate insert_str;
commit;
end;
is
insert_str varchar2(200);
begin
insert_str := 'insert into profession_skill values(9,''无心'',1,''10000'')';
execute immediate insert_str;
commit;
end;
--在写上面代码的时候,插入数据,发现使用双引号",虽然存储过程编译通过,但是无法插入。
之后,想到,在单引号'中再加单引号要转义,要加两个单引号'';