%rowtype是什麼?
我直接給出一個%rowtype的例子很多學員說理解起來有困難!
declare
cursor c1 is select * from t_emp ;
v_emp t_emp%rowtype ;
begin
open c1 ;
fetch c1 into v_emp ;
while not c1%notfound loop
dbms_output.put_line(
v_emp.id||' '||v_emp.name||' '||
v_emp.sex||' '||v_emp.age||' '||v_emp.salary||' '||
v_emp.birthday||' '||v_emp.depart_code) ;
fetch c1 into v_emp ;
end loop ;
close c1 ;
end;
--===================================
於是我嘗試透過下面的程式碼解釋一下,效果很好!但是oracle內部是不是透過這樣實現的我不得而知!
declare
cursor c1 is select * from t_emp ;
type v_emp_type is record(
id t_emp.id%type,
name t_emp.name%type,
sex t_emp.sex%type,
age t_emp.age%type,
salary t_emp.salary%type,
birthday t_emp.birthday%type,
depart_code t_emp.depart_code%type
) ;
v_emp v_emp_type ;
begin
open c1 ;
fetch c1 into v_emp ;
while not c1%notfound loop
dbms_output.put_line(
v_emp.id||' '||v_emp.name||' '||
v_emp.sex||' '||v_emp.age||' '||v_emp.salary||' '||
v_emp.birthday||' '||v_emp.depart_code) ;
fetch c1 into v_emp ;
end loop ;
close c1 ;
end;
--=======================================
試想如果沒有%rowtype,那麼定義太多的變數將成為一件很繁瑣的事情!
declare
cursor c1 is select * from t_emp ;
v_id int;
v_name varchar2(20) ;
v_sex varchar2(10) ;
v_age int ;
v_salary number ;
v_birthday date ;
v_depart_code varchar2(10) ;
begin
open c1 ;
fetch c1 into v_id , v_name , v_sex , v_age,
v_salary , v_birthday , v_depart_code ;
while not c1%notfound loop
dbms_output.put_line(c1%rowcount) ;
dbms_output.put_line(v_id||' '||v_name||' '||
v_sex||' '||v_age||' '||v_salary||' '||
v_birthday||' '||v_depart_code) ;
fetch c1 into v_id , v_name , v_sex , v_age,
v_salary , v_birthday , v_depart_code ;
end loop ;
close c1 ;
end;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/19602/viewspace-61752/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- %rowtype
- 什麼是cookie,什麼是sessionCookieSession
- 什麼是DNS,什麼是HostsDNS
- 什麼是模式? 什麼是框架?模式框架
- 這是什麼這是什麼
- 什麼是WebAuthn、FIDO 是什麼?Web
- ITIL是什麼意思?ITIL是什麼?
- 什麼是跨域,什麼是同源跨域
- 什麼是.NET平臺、什麼是c#、什麼是ASP.NET。C#ASP.NET
- ftp是什麼,ftp是什麼東西?FTP
- Java是什麼_Java是做什麼的?Java
- 什麼是正向代理?什麼是反向代理?
- NLA是什麼?NLA的原理是什麼?
- ###什麼是Linux核心###什麼是MMULinux
- 為什麼要有 Servlet ,什麼是 Servlet 容器,什麼是 Web 容器?ServletWeb
- 什麼是塊元素?什麼是行內元素?
- 什麼是API介面,具體是什麼意思?API
- 什麼是框架?為什麼說 Angular 是框架?框架Angular
- 什麼是Unicode,什麼是UTF-8Unicode
- 什麼是藍海?什麼是紅海?什麼是網際網路思維?
- nginx 是什麼,能幹什麼?Nginx
- 什麼是Django?有什麼用途?Django
- AI三重問:什麼是AI?什麼是AI模型?什麼是AI大模型?AI大模型
- 什麼是重繪repaint?什麼是迴流reflow?AI
- DHCP是什麼?DHCP伺服器是什麼意思?伺服器
- 什麼是CDN?CDN的技術原理是什麼?
- 交換機是什麼,它的工作原理是什麼
- GNU是什麼?和Linux是什麼關係?Linux
- 域名是什麼?申請域名的流程是什麼?
- 什麼是雲端計算?什麼是公司網盤?
- 什麼是eval()?eval是用來幹什麼的?
- 什麼是 Nginx?Nginx
- 什麼是PHPPHP
- 什麼是PodcastAST
- 什麼是Flutter?Flutter
- 敏捷是什麼?敏捷
- SQL是什麼?SQL
- 什麼是Docker?Docker