ORACLE相关:表空间、序列、索引、分区、游标、存储过程、分区等创建

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

--创建表空间

create tablespace text

datafile'F:/db/ordata/hibernate/text.dbf'

size10m

AUTOEXTEND ON NEXT10M MAXSIZE UNLIMITED

LOGGING

EXTENT MANAGEMENT LOCAL

SEGMENT SPACE MANAGEMENT AUTO;

--创建用户

create user text

identified by text

default tablespace text

--为用户分配权限

grant connect,resource,dba to text;

--用户登录表的结构

create table street(

id NUMBER(5) primary key not null,

p_id NUMBER(5),

name VARCHAR2(18) not null,

constraint s_fk_p_id foreign key (p_id) references district(id) );

--创建表

create table district(

id NUMBER(5) primary key not null,

name VARCHAR2(18) not null

);

--创建序列

create sequence seq_street

start with1

increment by1

nomaxvalue

cache10;

create sequence seq_district

start with1

increment by1

nomaxvalue

cache10;

drop table street;

drop table district;

delete district;

delete street;

select * from street;

select * from district;

delete district where id != 6;

--PL/SQL

--插入数据

DECLARE

v_id NUMBER(5) := 7;

v_name VARCHAR2(18) := '汉阳区';

BEGIN

insert into district values(v_id,v_name); EXCEPTION

When others then

DBMS_OUTPUT.PUT_LINE('插入数据失败');

END;

--IF-THEN语句

DECLARE

num1 number := 5;

num2 number := 1;

num3 number := 3;

result varchar2(20);

BEGIN

IF num1 > num2 THEN

result := 'num1 is big';

ELSIF num1 < num2 THEN

result := 'num3 is big';

ELSE

result := 'num2';

END IF;

DBMS_OUTPUT.PUT_LINE(result);

END;

--CASE 语句

DECLARE

chap char := 'c';

result varchar2(20);

BEGIN

CASE chap

WHEN'A'THEN result := 'is A';

WHEN'B'THEN result := 'is B';

ELSE result := 'Ok!';

END CASE;

DBMS_OUTPUT.put_line(RESULT);

END;

--LOOP循环

DECLARE

num4 number := 0;

BEGIN

LOOP

num4 := num4+1;

IF num4 > 10THEN

EXIT;

END IF;

DBMS_OUTPUT.PUT_LINE(num4);

END LOOP;

END;

--WHILE LOOP循环

DECLARE

num5 number := 1;

BEGIN

WHILE num5 < 5LOOP

num5 := num5 + 1;

DBMS_OUTPUT.PUT_LINE(num5);

END LOOP;

END;

--FOR LOOP循环

DECLARE

num6 number := 1;

BEGIN

FOR i IN1..10 LOOP

num6 := num6+i;

END LOOP;

DBMS_OUTPUT.PUT_LINE(num6);

END;

--动态SQL,执行DDL

BEGIN

EXECUTE IMMEDIATE'create table temp_table'

|| '(id integer,name varchar2(20))';

END;

SELECT * FROM temp_table;

DROP TABLE temp_table;

--执行PL/SQL语句块,以下代码中如果district表中有多行数据将会出错DECLARE

plsql varchar2(200);

BEGIN

plsql := 'DECLARE name varchar2(20);'

||'BEGIN

select ''桥口区'' into name from district ;

DBMS_OUTPUT.PUT_LINE(''当前日期是:''||name);

END;';

EXECUTE IMMEDIATE plsql;

END;

--绑定变量

DECLARE

id2 tab_t.id1%type;

name2 tab_1%type;

plsql varchar2(200);

BEGIN

plsql := 'insert into tab_t values(1)';

EXECUTE IMMEDIATE plsql returning id1 into id2 ; DBMS_OUTPUT.PUT_LINE(id2);

END;

create table tab_t

(

相关文档
最新文档