国产探花免费观看_亚洲丰满少妇自慰呻吟_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)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 云南省| 临洮县| 陈巴尔虎旗| 庐江县| 巩留县| 吉木萨尔县| 纳雍县| 兴安县| 沭阳县| 新晃| 靖远县| 苍溪县| 阿瓦提县| 濮阳市| 当雄县| 宁夏| 太和县| 新兴县| 安吉县| 吉安市| 建水县| 红河县| 桂平市| 南雄市| 哈尔滨市| 密云县| 杂多县| 邻水| 邳州市| 浦县| 阿拉尔市| 罗江县| 嫩江县| 资中县| 囊谦县| 英德市| 宜州市| 娄烦县| 乌兰县| 泰宁县| 兴化市|