国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

pl/sql程序編寫中遇到的一些問題及解決辦法

2024-07-21 02:06:35
字體:
來源:轉載
供稿:網友

1、在pl/sql中,order by子句中的條件可以使用變量!

declare
 v_orderbystr varchar2(30);
 v_userid varchar2(30);
 v_username varchar2(30);
 v_gender number;
 v_rownum number;
 type tcur is ref cursor;
 results tcur;
 begin
 v_rownum:=0;
 v_orderbystr:='username';
    open results for select userid,username,gender  from
      (select rownum as rowno, a.* from
      (select * from home_user order by v_orderbystr) a
      where rownum<10)
       where rowno>=1;
    loop
         fetch results into v_userid,v_username,v_gender;
         exit when results%notfound;
         dbms_output.put_line(v_userid||' '||v_username||' '||v_gender);
         v_rownum:=v_rownum+1;
         end loop;
         close results;
         dbms_output.put_line(v_rownum);
end;

2、而在寫動態sql的存儲過程中,發現在使用using子句時 ,發現不能把表名作為占位符的參數!而只能通過下邊的辦法來替代,即直接將表名與字符串相連,其他的變量則可以被占位符來替代;
         v_sqlstr:='select * from(select rownum rowno,t.* from'
              ||'(select sequenceid msgid,themeid,id,topic,hits,replys,nickname'
              ||' from '||tablename||' where themeid=:a2 order by :a3) t where rownum<:a4'
              ||') where rowno>=:a5';
          dbms_output.put_line(v_sqlstr);
          open o_results for v_sqlstr using p_themeid,v_orderbystr,v_endrow,v_startrow;

3、在做一些翻頁查詢時,使用了偽列rownum,發現rownum只能用于rownum<10之類的應用,而不能是rownum>10;上例中實現了同時翻頁的功能;

4、利用已經存在的表建立一個新表,并復制源表的表結構:
create table newtable as (select * oldtable where 1=2)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 托克逊县| 竹北市| 封丘县| 高碑店市| 昌图县| 庐江县| 孝昌县| 永川市| 吴堡县| 收藏| 曲沃县| 汽车| 酒泉市| 古蔺县| 古田县| 嘉善县| 盐边县| 屏东市| 拉孜县| 绥化市| 上林县| 图木舒克市| 绥芬河市| 九寨沟县| 永清县| 特克斯县| 桂阳县| 郑州市| 徐水县| 台南市| 灵川县| 富阳市| 丹东市| 巩留县| 西盟| 锦州市| 仙居县| 黑龙江省| 南部县| 云南省| 浠水县|