oracle的一些语句


仅作为自己笔记用,如果正好别人也需要就更好了

--1.执行普通的代码
declare 
arg1 VARCHAR2(222) := 123; --定义对象赋值,oracle里面 := 代表赋值的意思
arg2 VARCHAR2(222) := 333;
begin
    --假设arg1是输入,arg2是输出   
    用户.存储过程(arg1, arg2); --执行存储过程
    dbms_output.put_line(arg1);--输出字符串
end;

--2.查询前n行
select * from 表名 where rownum <= n

--3.建表
create table 表名
(
    id number not null,
    string varchar(20),
    string2 varchar(20)            
);

--4.给上面这张表添加注释
comment on column 表名.字段名 is '注释';

--5.给上面那张表创建索引
alter table 用户名.表名 add constraint 主键名 primary key (主键字段)

--6.创建序列(主键自增用)
create sequence 序列名 -- 建议使用表名+字段名+seq后缀
increment by 1 -- 每次加几个
start with 1 -- 从1开始计数
nomaxvalue --不设置最大值
nocycle -- 一直累加,不循环
nocache -- 不建缓冲区

--7.把上面的序列和表绑定(需要启用)
create or replace trigger 触发器名字
before insert on 表名
for each row
begin
select 序列名.nextval into :new.主键名字 from dual;
end 触发器名字;

--8.给上面那张表创建索引,和sql server一样,如果没有建立组合索引,在where string = 'xxx' and string2 = 'xxx'的时候单个索引不起作用,且和where时候使用的字段顺序有关,如果 where string2 = 'xxx' and string = 'xxx'则下面这段索引就不起作用
create index 索引名字 on 表名 (string, string2);

--9.创建存储过程
create or replace procedure pro_test(string1 in varchar2, string2 in varchar2)--pro_test为存储过程名
is
temp varchar2(128);--temp为存储过程临时变量
begin
    insert into mytesttable (string, string2) values(string1, string2);
    commit;--切记commit一下(提交)
    select count(*) into temp from mytesttable;--存储过程里面查询必须要有个存放的地方不然会报语法错误
    dbms_output.put_line('行数:'||temp);--orcale里面 || 代表拼接符号
    exception
    when others
    then
        dbms_output.put_line('出错了:'||SQLERRM);
    rollback;--回滚
end;

--10.执行带参数存储过程:
exec 存储过程(参数1,参数2);    
--11.执行无参数存储过程:
exec 存储过程名字();

 

 

原创文章,作者:bd101bd101,如若转载,请注明出处:https://blog.ytso.com/tech/database/275300.html

(0)
上一篇 2022年7月19日 03:17
下一篇 2022年7月19日 03:42

相关推荐

发表回复

登录后才能评论