PLSQL开发知识
文章平均质量分 70
PLSQL开发知识
优惠券已抵扣
余额抵扣
还需支付
¥39.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
scan724
这个作者很懒,什么都没留下…
展开
-
ORA-006512
create or replace procedure esb_proc_trans_table(p_currdate in date default NULL)is p_bba varchar(10);begin p_bba :='22222222222222222222222'; DBMS_OUTPUT.PUT_LINE('aaaa' || '---' || p_currdate||p_bba);end;原创 2020-11-30 20:17:19 · 374 阅读 · 0 评论 -
plsql 传参
create or replace procedure test_prc(p_data_dt in date) ISbegin DBMS_OUTPUT.PUT_LINE('aaaa' || '---' || p_data_dt);end;原创 2020-07-08 18:38:44 · 948 阅读 · 0 评论 -
PL/SQL 包头和包体
包用于逻辑组合相关的过程和函数,它由包规范和包体两部分组成,包规范用于定义公用的常量变量,过程和函数,在SQL*PLUS中建立包规范可以使用CREATE PACKAGE命令。实例如下:CREATE OR REPLACE PACKAGE emp_pkg IS PROCEDURE update_sal(name VARCHAR2,newsal NUMBER); FUNCTION an原创 2014-05-04 09:34:57 · 2848 阅读 · 0 评论 -
PL/SQL 动态SQL
declaremsql varchar2(200);row_id varchar2(200);beginlooprow_id := 'AAATGiAAEAAAuLLAAA';msql := 'select * from t3 where rowid='''||row_id || ''''; execute immediate msql;end loop;end;原创 2014-03-23 12:22:24 · 566 阅读 · 0 评论 -
动态SQL使用绑定变量
SQL> begin for i in 1..1000000 loop execute immediate 'insert into p1 values(i)' ; commit; end loop;end; 2 3 4 5 6 7 8 /begin*ERROR at line 1:ORA-00原创 2014-04-21 20:32:27 · 674 阅读 · 0 评论 -
PLSQL 循环示例
SQL> create or replace procedure test_1 isbegin for i in 1 .. 10 loop DBMS_OUTPUT.PUT_LINE(i); end loop;end; 2 3 4 5 6 7 /过程已创建。SQL> exec test_112345678910P原创 2014-06-18 15:04:17 · 675 阅读 · 0 评论 -
pl/sql执行动态sql
SQL> declare msql varchar2(200); begin loop msql := 'select * from bfw_test'; execute immediate msql; end loop; end;原创 2014-06-18 17:32:17 · 631 阅读 · 0 评论 -
关于函数授权问题
test 用户创建函数:create or replace function get_sal(name1 varchar2)return number isv_sal number(6,2);beginselect sal into v_sal from emp where upper(ename)=upper(name1);return v_sal;end;SQL> sel原创 2014-08-18 19:57:54 · 1065 阅读 · 0 评论 -
PL/SQL FOR循环例子
DECLARE CURSOR cur IS SELECT a.ROWID from test1 a where a.id > 100 ORDER BY a.ROWID; V_COUNTER NUMBER;BEGIN V_COUNTER := 0; FOR row IN cur LOOP UPDATE test1 SET id = 9999 WHERE ROWID原创 2015-04-27 15:51:33 · 580 阅读 · 0 评论 -
begin和declare
beginfor i in 1..100000loopinsert into test1 values(i,'a'||i);end loop;end;SQL> select min(id),max(id) from test1; MIN(ID) MAX(ID)---------- ---------- 1 1000000DECLARE CURSOR原创 2015-04-27 16:54:30 · 2016 阅读 · 0 评论 -
PLSQL 拼接SQL
create or replace procedure prc2 is v_name char(10);begin for i in ( select username from t1)loop DBMS_OUTPUT.PUT_LINE('i的值是'||i.username); end loop; end;SQL> exec prc2;i的值是SYSi的值是TEST原创 2015-04-27 21:58:03 · 4638 阅读 · 0 评论 -
pl/sql 报字符串缓冲区太小
create or replace procedure esb_proc_trans_table(p_currdate in date default NULL)is--全局参数v_curr_date date;v_table_name varchar(30);v_part_name varchar(30);v_last_space varchar(30);v_next_spac...原创 2018-12-07 14:33:39 · 1787 阅读 · 0 评论 -
PLSQL死循环
beginloopinsert into for1 values('a');commit;end loop;end;原创 2014-03-22 20:28:16 · 914 阅读 · 0 评论 -
pl/sql 在一个程序块里打印日志输出到表格
declare v_number NUMBER; v_number2 NUMBER;beginexecute immediate 'truncate table t2';insert into t2 select count(*) from dual;commit;begininsert into t2 select count(*) from t1;com原创 2014-03-12 21:39:45 · 2313 阅读 · 0 评论 -
pl/sql 程序块里打印问题
declare v_number NUMBER; v_number2 NUMBER;beginselect count(*) into v_number from dual;DBMS_OUTPUT.PUT_LINE('table YJBZH_GRXDFHZMXJL此时记录数为'||v_number);select count(*) into v_number2 from t原创 2014-03-12 21:22:03 · 937 阅读 · 0 评论 -
循环处理数据提交
DECLARE V_COUNTER NUMBER; begin V_COUNTER := 0; for i in 1 .. 1000022 loop insert into p1 values(i, 'a' || i); V_COUNTER := V_COUNTER + 1; IF (V_COUNTER >= 10000) THEN CO原创 2013-12-23 16:08:40 · 679 阅读 · 0 评论 -
pl/sql 关于变量定义的问题
1.create or replace procedure test_prc(p_data_dt in date) IS e_name emp.ename%type; begin select ename into e_name from emp where hiredat原创 2013-12-24 17:31:09 · 958 阅读 · 1 评论 -
PL/SQL拼接和使用绑定变量
begin for iin1 ..1000000loop executeimmediate'insert into p1 values(' || i || ',' || i ||')'; commit; endloop;end; 可以看到动态使用拼接的是使用的常值 使用绑定变量看到的就是变量的形原创 2013-12-24 09:58:12 · 1108 阅读 · 0 评论 -
PL/SQL 异常处理
SQL> set serveroutput on SQL> declare name varchar2(10);begin select ename into name from emp where empno = &no; dbms_output.put_line(name);EXCEPTION when NO_DATA_FOUND THEN dbm原创 2013-12-24 20:51:55 · 693 阅读 · 0 评论 -
神一样的代码
declare cursor c_update is select b.acct_skid, a.acct_id from opt_acct_fdim a, opt_acct_fdim_bkp b where a.acct_id = b.acct_id; v_counter number;begin v_counter := 0; for v_row原创 2013-12-25 20:56:05 · 723 阅读 · 0 评论 -
VARCHAR2字段关联
SQL> desc a1 Name Null? Type ----------------------------------------- -------- ---------------------------- ID原创 2013-12-25 09:46:35 · 726 阅读 · 0 评论 -
PL/SQL 程序块
DECLARE BARCODE VARCHAR(50);BEGIN BARCODE := 'A'; IF BARCODE<>'A' then SELECT 1 FROM sam_users; ELSE SELECT 2 FROM sam_users; END IF;END;DECLARE ENAME VARCHAR(50);原创 2014-01-09 20:13:31 · 775 阅读 · 0 评论 -
char类型关联
SQL> create table a1(id int,name char(10));Table created.SQL> create table a2(id int,name char(10));Table created.SQL> insert into a1 values(1,'a');1 row created.SQL> commit;原创 2013-12-26 11:09:47 · 623 阅读 · 0 评论 -
PL/SQL游标使用
游标是用来处理使用SELECT语句从数据库中检索到的多行记录的工具。借助游标的功能,数据库应用程序可以对一组记录逐个进行处理,每次处理一行。--普通游标,游标本身就是一个变量SQL> DECLARE 2 emp_id employees_test.employee_id%type; 3 CURSOR cur IS 4 SELECT b.employe原创 2013-12-19 22:42:03 · 585 阅读 · 0 评论 -
Oracle 搜集统计信息的存储过程
DECLARE CURSOR STALE_TABLE IS SELECT OWNER, SEGMENT_NAME, CASE WHEN SIZE_GB < 0.5 THEN 30 WHEN SIZE_GB >= 0.5 AND SIZE_GB < 1原创 2014-01-26 10:27:05 · 1018 阅读 · 0 评论 -
关闭游标
create or replace PROCEDURE PROC_STU3 AS BEGIN --显示游标使用,使用for循环 declare --定义游标,名称为cur_stu cursor cur_stu is select stuno,stuname from student order by stuno; begin for stu in cur_stu原创 2014-01-26 18:45:32 · 1793 阅读 · 0 评论 -
游标溢出问题
SQL> set serveroutput onSQL> DECLARE CURSOR cur IS SELECT DATA_DATE, ACCT_NO , ACCT_ORD , ACCT_NO_PK , CARD_CODE , CUST_NO , BANK_CORP_CODE, MGR_C原创 2013-12-23 11:45:34 · 650 阅读 · 0 评论