1、在
pl/sql中,orderby子句中的條件可以使用變數!
declare
v_orderbystrvarchar2(30);
v_useridvarchar2(30);
v_usernamevarchar2(30);
v_gendernumber;
v_rownumnumber;
typetcurisrefcursor;
resultstcur;
begin
v_rownum:=0;
v_orderbystr:='username';
openresultsforselectuserid,username,gender from
(selectrownumasrowno,a.*from
(select*fromhome_userorderbyv_orderbystr)a
whererownum<10)
whererowno>=1;
loop
fetchresultsintov_userid,v_username,v_gender;
exitwhenresults%notfound;
dbms_output.put_line(v_userid||''||v_username||''||v_gender);
v_rownum:=v_rownum+1;
endloop;
closeresults;
dbms_output.put_line(v_rownum);
end;
2、而在寫動態
sql的儲存過程中,發現在使用using子句時,發現不能把表名作為佔位符的引數!而只能通過下邊的辦法來替代,即直接將表名與字串相連,其他的變數則可以被佔位符來替代;
v_sqlstr:='select*from(selectrownumrowno,t.*from'
||'(selectsequenceidmsgid,themeid,id,topic,hits,re
plys,nickname'
||'from'||tablename||'wherethemeid=:a2orderby:a3)twhererownum<:a4'
||')whererowno>=:a5';
dbms_output.put_line(v_
sqlstr);
openo_resultsforv_
sqlstrusingp_themeid,v_orderbystr,v_endrow,v_startrow;
3、在做一些翻頁查詢時,使用了偽列rownum,發現rownum只能用於rownum<10之類的應用,而不能是rownum>10;上例中實現了同時翻頁的功能;
4、利用已經存在的表建立乙個新錶,並複製源表的表結構:
createtable newtable as(select*oldtablewhere1=2)
編寫ise程式遇到的一些問題
以下錯誤也可能是由於其他錯誤所引起,我寫的只是我遇到的錯誤,所以如果按照下面的方法依舊無法解決,並不一定是我的方法有問題,這時建議尋找其他人的解決經驗。verilog語言裡需要仔細檢查自己寫的變數名是否上下一致。對於模組的輸入變數,如果想要將其作為if或case的引數,那麼需要將if或case放到a...
svn branch merge中遇到的一些問題
拉分支的時候,選擇svn branch 在彈出的框中需要選擇目標位址,不過這個有乙個問題就是,這個目標位址不能是已經建立好的,必須至少要有一級目錄還是未建立的,比如想要拉分支到目錄branch 那你最多只能在本地建立乙個branch目錄,這個 是必須要手動輸入到 from branch 否則就會報 ...
一些遇到的有趣的程式題
程式是計算陣列直方圖最大矩形面積,直方圖每列寬度為1,如的最大矩形面積是7 2 14 思路 從左往右,從a 0 到a n 1 依次計算能和a i 組成矩形的最大面積,因為只有大於或者等於a i 才能和a i 組成矩形塊 所以分別從a i 開始,從左擴充套件計算能和a i 組成的矩形的塊數,再往右計算...