Oracle SQL语句大全(三)
生活随笔
收集整理的這篇文章主要介紹了
Oracle SQL语句大全(三)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
例子2:?SQL>?declare
2?v_name?varchar2(20);?
3?begin?
4?v_name:='myname';?
5?dbms_output.put_line(v_name);?6?end;?7?/?myname?例子3:?SQL>?declare?
2?v_num?number:=0;?3?begin?
4?v_num:=2/v_num;?
5?dbms_output.put_line(v_num);?6?end;?7?/?
declare?*?
ERROR?位于第?1?行:?ORA-01476:?除數為?0?ORA-06512:?在line?4?例子4:?
declare?
v_num?number:=0;?
begin?
v_num:=2/v_num;?
dbms_output.put_line(v_num);?exception?when?others?then?
dbms_output.put_line('error');?end;?/?
變量聲明的規則?
1.變量名不能夠使用保留字,如from,select等?2.第一字符必須是字母。?3.變量名最多包含30個字符?
4.不要與數據庫的表或者列同名?5.每一行只能聲明一個變量?
常用變量類型?
1.?binary_interger,整數,主要用來計數,而不是用來表示字段類型
2.?number?數字類型
3.?char???定長字符串?
4.?varchar2?變長字符串? 5.?date?????日期? 6.long?????長字符串,最長2GB? 7.boolean???布爾類型,可以取true?false?和null的值?例5:?declare?v_temp?number(1);?v_count?binary_integer:=0;?
????v_sal?number(7,2):=4000.00;???
??v_date?date:=sysdate;?v_pi?constant?number(3,2):=3.14;??
???v_valid?boolean:=false;?v_name?varchar2(20)?not?null:='myname';
?begin?dbms_output.put_line('v_temp?value:'||v_temp);
?end;? 用--可以注釋一行?例6:?declare?v_empno?number(4);???
??v_empno2?emp.empno%type;??
???v_empno3?v_empno2%type;?
begin?dbms_output.put_line('test');
?end;?
例7? table變量類型?set?serveroutput?on;? declare?type?type_table_emp_empno?is?table?of?emp.empno%type?index?by?binary_integer;??
????v_empnos?type_table_emp_empno;?
begin?v_empnos(0):=7369;??????
v_empnos(2):=7869;?v_empnos(-1):=9999;?dbms_output.put_line(v_empnos(-1));
?end;
?例8? Record?變量類型?set?serveroutput?on;?declare?type?type_record_dept?is?record????(?deptno?dept.deptno%type,?dname???dept.dname%type,???????loc?????dept.loc%type?????);?v_temp?type_record_dept;?
begin?v_temp.deptno:=50;??
???v_temp.loc:='aaaa';?v_temp.loc:='bj';?dbms_output.put_line(v_temp.deptno||'?'||v_temp.dname);?
end; 例9: 使用%rowtype聲明record變量(表結構的變化同時也能代理儲存過程的變化)
set serveroutput on;
declare v_temp dept%rowtype;
begin
v_temp.deptno:=50;
v_temp.loc:='aaaa';
v_temp.loc:='bj';
dbms_output.put_line(v_temp.deptno||' '||v_temp.dname);
end;
例10; declare v_name emp.ename%type;
v_sal emp.sal%type;
begin
select ename,sal into v_name,v_sal from emp where empno=7369;(將ename和sal的值放在v_name和v_sal里面)
end;
例11:? declare? v_name?emp.ename%type;?
v_sal?emp.sal%type;? begin? select?ename,sal?into?v_name,v_sal?from?emp?where?empno=7369;?dbms_output.put_line(v_name||'?'||v_sal);?
end;? dbms_output.put_line(v_name||'?'||v_sal);?
end;?
例12:?declare? v_deptno?dept.deptno%type:=50;?
v_dname?dept.dname%type:='aaaa';? v_loc????dept.loc%type:='bj';? begin? insert?into?dept2?values(v_deptno,v_dname,v_loc);?commit;?
end;?
例13:? declare? v_deptno?emp2.deptno%type:=50;
?v_count?number;? begin? update?emp2?set?sal=sal/2?where?deptno=v_deptno;? dbms_output.put_line(sql%rowcount?||'條記錄被影響');
(sql為關鍵字,代表上一條語句?commit;?
end;
?/?例14:? declare? v_deptno?emp2.deptno%type:=50;?v_count?number;? begin? --update?emp2?set?sal=sal/2?where?deptno=v_deptno;?select?deptno?into?v_deptno?from?emp2?where?empno=7369;? dbms_output.put_line(sql%rowcount?||'條記錄被影響');(sql為關鍵字,代表上一條語句?commit;?
end;
?/?例15? declare? v_deptno?emp2.deptno%type:=50;
?v_count?number;
?begin? --update?emp2?set?sal=sal/2?where?deptno=v_deptno;? --select?deptno?into?v_deptno?from?emp2?where?empno=7369;? select?count(*)?into?v_count?from?emp2;???????
???(select必須和into一起使用)? dbms_output.put_line(sql%rowcount?||'條記錄被影響');?
commit;? end;?/?
PL/SQL里面執行DDL語句? begin? execute?immediate?'create?table?T(nnn?varchar2(20)?default?''aaa'')';?
例11:? declare? v_name?emp.ename%type;?v_sal?emp.sal%type;? begin? select?ename,sal?into?v_name,v_sal?from?emp?where?empno=7369;?dbms_output.put_line(v_name||'?'||v_sal);?
end;?
dbms_output.put_line(v_name||'?'||v_sal);
?end;?
例12:
?declare?v_deptno?dept.deptno%type:=50;
?v_dname?dept.dname%type:='aaaa';?v_loc????dept.loc%type:='bj';? begin? insert?into?dept2?values(v_deptno,v_dname,v_loc);?commit;?
end;?
例13:? declare? v_deptno?emp2.deptno%type:=50;?v_count?number;? begin? update?emp2?set?sal=sal/2?where?deptno=v_deptno;? dbms_output.put_line(sql%rowcount?||'條記錄被影響');
(sql為關鍵字,代表上一條語句?commit;
?end;
?/?例14:? declare?v_deptno?emp2.deptno%type:=50;
?v_count?number;? begin? --update?emp2?set?sal=sal/2?where?deptno=v_deptno;?select?deptno?into?v_deptno?from?emp2?where?empno=7369;? dbms_output.put_line(sql%rowcount?||'條記錄被影響');
(sql為關鍵字,代表上一條語句?commit;?
end;
?/?例15? declare? v_deptno?emp2.deptno%type:=50;
?v_count?number;?
begin? --update?emp2?set?sal=sal/2?where?deptno=v_deptno;? --select?deptno?into?v_deptno?from?emp2?where?empno=7369;? select?count(*)?into?v_count?from?emp2;????????????????????????
(select必須和into一起使用)? dbms_output.put_line(sql%rowcount?||'條記錄被影響');
?commit;? end;?/?
PL/SQL里面執行DDL語句? begin? execute?immediate?'create?table?T(nnn?varchar2(20)?default?''aaa'')';?
例11:? declare? v_name?emp.ename%type;?v_sal?emp.sal%type;? begin? select?ename,sal?into?v_name,v_sal?from?emp?where?empno=7369;?dbms_output.put_line(v_name||'?'||v_sal);
?end;? dbms_output.put_line(v_name||'?'||v_sal);
?end;
?例12:?declare?
v_deptno?dept.deptno%type:=50;?v_dname?dept.dname%type:='aaaa';? v_loc????dept.loc%type:='bj';? begin? insert?into?dept2?values(v_deptno,v_dname,v_loc);?commit;
?end;
?例13:? declare? v_deptno?emp2.deptno%type:=50;?v_count?number;? begin? update?emp2?set?sal=sal/2?where?deptno=v_deptno;? dbms_output.put_line(sql%rowcount?||'條記錄被影響');
(sql為關鍵字,代表上一條語句?commit;
?end;
?/?例14:? declare? v_deptno?emp2.deptno%type:=50;
?v_count?number;? begin? --update?emp2?set?sal=sal/2?where?deptno=v_deptno;?select?deptno?into?v_deptno?from?emp2?where?empno=7369;? dbms_output.put_line(sql%rowcount?||'條記錄被影響');
(sql為關鍵字,代表上一條語句?commit;?
end;?
/?例15? declare? v_deptno?emp2.deptno%type:=50;
?v_count?number;?begin? --update?emp2?set?sal=sal/2?where?deptno=v_deptno;? --select?deptno?into?v_deptno?from?emp2?where?empno=7369;? select?count(*)?into?v_count?from?emp2;???????
?????????????????(select必須和into一起使用)? dbms_output.put_line(sql%rowcount?||'條記錄被影響');
?commit;? end;?/?
2.?number?數字類型
3.?char???定長字符串?
4.?varchar2?變長字符串? 5.?date?????日期? 6.long?????長字符串,最長2GB? 7.boolean???布爾類型,可以取true?false?和null的值?例5:?declare?v_temp?number(1);?v_count?binary_integer:=0;?
????v_sal?number(7,2):=4000.00;???
??v_date?date:=sysdate;?v_pi?constant?number(3,2):=3.14;??
???v_valid?boolean:=false;?v_name?varchar2(20)?not?null:='myname';
?begin?dbms_output.put_line('v_temp?value:'||v_temp);
?end;? 用--可以注釋一行?例6:?declare?v_empno?number(4);???
??v_empno2?emp.empno%type;??
???v_empno3?v_empno2%type;?
begin?dbms_output.put_line('test');
?end;?
例7? table變量類型?set?serveroutput?on;? declare?type?type_table_emp_empno?is?table?of?emp.empno%type?index?by?binary_integer;??
????v_empnos?type_table_emp_empno;?
begin?v_empnos(0):=7369;??????
v_empnos(2):=7869;?v_empnos(-1):=9999;?dbms_output.put_line(v_empnos(-1));
?end;
?例8? Record?變量類型?set?serveroutput?on;?declare?type?type_record_dept?is?record????(?deptno?dept.deptno%type,?dname???dept.dname%type,???????loc?????dept.loc%type?????);?v_temp?type_record_dept;?
begin?v_temp.deptno:=50;??
???v_temp.loc:='aaaa';?v_temp.loc:='bj';?dbms_output.put_line(v_temp.deptno||'?'||v_temp.dname);?
end; 例9: 使用%rowtype聲明record變量(表結構的變化同時也能代理儲存過程的變化)
set serveroutput on;
declare v_temp dept%rowtype;
begin
v_temp.deptno:=50;
v_temp.loc:='aaaa';
v_temp.loc:='bj';
dbms_output.put_line(v_temp.deptno||' '||v_temp.dname);
end;
例10; declare v_name emp.ename%type;
v_sal emp.sal%type;
begin
select ename,sal into v_name,v_sal from emp where empno=7369;(將ename和sal的值放在v_name和v_sal里面)
end;
例11:? declare? v_name?emp.ename%type;?
v_sal?emp.sal%type;? begin? select?ename,sal?into?v_name,v_sal?from?emp?where?empno=7369;?dbms_output.put_line(v_name||'?'||v_sal);?
end;? dbms_output.put_line(v_name||'?'||v_sal);?
end;?
例12:?declare? v_deptno?dept.deptno%type:=50;?
v_dname?dept.dname%type:='aaaa';? v_loc????dept.loc%type:='bj';? begin? insert?into?dept2?values(v_deptno,v_dname,v_loc);?commit;?
end;?
例13:? declare? v_deptno?emp2.deptno%type:=50;
?v_count?number;? begin? update?emp2?set?sal=sal/2?where?deptno=v_deptno;? dbms_output.put_line(sql%rowcount?||'條記錄被影響');
(sql為關鍵字,代表上一條語句?commit;?
end;
?/?例14:? declare? v_deptno?emp2.deptno%type:=50;?v_count?number;? begin? --update?emp2?set?sal=sal/2?where?deptno=v_deptno;?select?deptno?into?v_deptno?from?emp2?where?empno=7369;? dbms_output.put_line(sql%rowcount?||'條記錄被影響');(sql為關鍵字,代表上一條語句?commit;?
end;
?/?例15? declare? v_deptno?emp2.deptno%type:=50;
?v_count?number;
?begin? --update?emp2?set?sal=sal/2?where?deptno=v_deptno;? --select?deptno?into?v_deptno?from?emp2?where?empno=7369;? select?count(*)?into?v_count?from?emp2;???????
???(select必須和into一起使用)? dbms_output.put_line(sql%rowcount?||'條記錄被影響');?
commit;? end;?/?
PL/SQL里面執行DDL語句? begin? execute?immediate?'create?table?T(nnn?varchar2(20)?default?''aaa'')';?
例11:? declare? v_name?emp.ename%type;?v_sal?emp.sal%type;? begin? select?ename,sal?into?v_name,v_sal?from?emp?where?empno=7369;?dbms_output.put_line(v_name||'?'||v_sal);?
end;?
dbms_output.put_line(v_name||'?'||v_sal);
?end;?
例12:
?declare?v_deptno?dept.deptno%type:=50;
?v_dname?dept.dname%type:='aaaa';?v_loc????dept.loc%type:='bj';? begin? insert?into?dept2?values(v_deptno,v_dname,v_loc);?commit;?
end;?
例13:? declare? v_deptno?emp2.deptno%type:=50;?v_count?number;? begin? update?emp2?set?sal=sal/2?where?deptno=v_deptno;? dbms_output.put_line(sql%rowcount?||'條記錄被影響');
(sql為關鍵字,代表上一條語句?commit;
?end;
?/?例14:? declare?v_deptno?emp2.deptno%type:=50;
?v_count?number;? begin? --update?emp2?set?sal=sal/2?where?deptno=v_deptno;?select?deptno?into?v_deptno?from?emp2?where?empno=7369;? dbms_output.put_line(sql%rowcount?||'條記錄被影響');
(sql為關鍵字,代表上一條語句?commit;?
end;
?/?例15? declare? v_deptno?emp2.deptno%type:=50;
?v_count?number;?
begin? --update?emp2?set?sal=sal/2?where?deptno=v_deptno;? --select?deptno?into?v_deptno?from?emp2?where?empno=7369;? select?count(*)?into?v_count?from?emp2;????????????????????????
(select必須和into一起使用)? dbms_output.put_line(sql%rowcount?||'條記錄被影響');
?commit;? end;?/?
PL/SQL里面執行DDL語句? begin? execute?immediate?'create?table?T(nnn?varchar2(20)?default?''aaa'')';?
例11:? declare? v_name?emp.ename%type;?v_sal?emp.sal%type;? begin? select?ename,sal?into?v_name,v_sal?from?emp?where?empno=7369;?dbms_output.put_line(v_name||'?'||v_sal);
?end;? dbms_output.put_line(v_name||'?'||v_sal);
?end;
?例12:?declare?
v_deptno?dept.deptno%type:=50;?v_dname?dept.dname%type:='aaaa';? v_loc????dept.loc%type:='bj';? begin? insert?into?dept2?values(v_deptno,v_dname,v_loc);?commit;
?end;
?例13:? declare? v_deptno?emp2.deptno%type:=50;?v_count?number;? begin? update?emp2?set?sal=sal/2?where?deptno=v_deptno;? dbms_output.put_line(sql%rowcount?||'條記錄被影響');
(sql為關鍵字,代表上一條語句?commit;
?end;
?/?例14:? declare? v_deptno?emp2.deptno%type:=50;
?v_count?number;? begin? --update?emp2?set?sal=sal/2?where?deptno=v_deptno;?select?deptno?into?v_deptno?from?emp2?where?empno=7369;? dbms_output.put_line(sql%rowcount?||'條記錄被影響');
(sql為關鍵字,代表上一條語句?commit;?
end;?
/?例15? declare? v_deptno?emp2.deptno%type:=50;
?v_count?number;?begin? --update?emp2?set?sal=sal/2?where?deptno=v_deptno;? --select?deptno?into?v_deptno?from?emp2?where?empno=7369;? select?count(*)?into?v_count?from?emp2;???????
?????????????????(select必須和into一起使用)? dbms_output.put_line(sql%rowcount?||'條記錄被影響');
?commit;? end;?/?
?
轉載于:https://www.cnblogs.com/ruishuang208/p/4095397.html
總結
以上是生活随笔為你收集整理的Oracle SQL语句大全(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MYSQL数据库导入数据时出现乱码的解决
- 下一篇: SQL SERVER的连接方式