ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

oracle的一些语句

2022-07-18 16:32:42  阅读:154  来源: 互联网

标签:语句 -- arg1 arg2 VARCHAR2 oracle 一些 222


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

--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 存储过程名字();

 

 

标签:语句,--,arg1,arg2,VARCHAR2,oracle,一些,222
来源: https://www.cnblogs.com/Transmuter/p/16490898.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有