oracle如何表,oracle如何表示字符串中的换行

在oracle数据库中,如何建立表与表之间的关系?

就是在表与表之间建立起链接就行了,这个链接就叫做

创新互联企业建站,十余年网站建设经验,专注于网站建设技术,精于网页设计,有多年建站和网站代运营经验,设计师为客户打造网络企业风格,提供周到的建站售前咨询和贴心的售后服务。对于成都网站制作、成都网站设计中不同领域进行深入了解和探索,创新互联在网站建设中充分了解客户行业的需求,以灵动的思维在网页中充分展现,通过对客户行业精准市场调研,为客户提供的解决方案。

外键

—FC;列入:create

table

stu(stuid

int,sName

varchar2(20));

create

table

score(stid

int,cid

int);

alter

table

stu

add

constraint

pk_stuid

primary

key(stuid);

alter

table

score

add

constraint

fk_stuid

foreign

key(stid)

references

stu(stuid);

stuid这个属性就是foreign

key就是外键;他就是链接stu表和score表的桥梁。

如何查看oracle数据库中的所有表

select

*

from

dba_tables;

需要DBA权限,可以查看数据库全部表信息

select

*

from

user_tables;

查看当前用户下所有的表信息

select

*

from

all_tables;

查看当前用户和当前用户所能看到的用户的表。

oracle 如何动态创建表

create or replace procedure sp_crt_tbl_from_dic(p_src_tbl varchar2,

p_tgt_tbl_name varchar2,

p_prt_flg varchar2,

p_tx_date varchar2) is

v_col varchar2(500) := '';

v_col_data_type varchar2(100) := '';

v_sql varchar2(25000) := '';

v_col_list varchar2(20000) := ' ';

v_prt_sql varchar2(2000) := '';

v_grant_sql varchar2(2000) := '';

v_crt_syn_sql varchar2(2000) := '';

v_drop_tbl_sql varchar2(2000) := '';

i_tbl_cnt number(1, 0) := 0;

v_step_no varchar2(3) := '';

begin

--step 1

v_step_no := '1';

select count(1) into i_tbl_cnt from tabs where table_name = p_src_tbl;

if (i_tbl_cnt = 0) then

sp_log('sp_crt_tbl', v_step_no, '3', p_tx_date, p_src_tbl || '不存在');

return;

end if;

--step 2

v_step_no := '2';

select count(1)

into i_tbl_cnt

from tabs

where table_name = p_tgt_tbl_name;

if (i_tbl_cnt 0) then

v_drop_tbl_sql := 'drop table ' || p_tgt_tbl_name;

execute immediate v_drop_tbl_sql;

end if;

v_step_no := '1';

sp_log('sp_crt_tbl_from_dic',v_step_no,'1',p_tx_date,p_tgt_tbl_name || '建表开始');

v_sql := 'create table ' || p_tgt_tbl_name || '(';

v_col := '';

v_col_data_type := '';

v_col_list := '';

for cur_col_name in (

SELECT T.COLUMN_NAME col_name,

CASE WHEN T.DATA_TYPE IN ('VARCHAR2', 'CHAR') THEN T.DATA_TYPE || '(' || T.DATA_LENGTH || ')'

WHEN T.DATA_TYPE IN ('NUMBER') THEN T.DATA_TYPE || '(' || T.DATA_PRECISION || ',' || T.DATA_SCALE || ')'

WHEN T.DATA_TYPE IN ('DATE') THEN T.DATA_TYPE ELSE '' END col_data_type

FROM COLS T

where T.TABLE_NAME = p_src_tbl

order by to_number(T.COLUMN_ID)) loop

v_col := trim(cur_col_name.col_name);

v_col_data_type := trim(cur_col_name.col_data_type);

v_col_list := trim(v_col_list) || trim(v_col) || ' ' || trim(v_col_data_type) || ',';

end loop;

v_sql := trim(v_sql) || trim(v_col_list) || ')';

v_sql := replace(v_sql, ',)', ')');

if (p_prt_flg = '1') then

v_prt_sql := ' partition by range (part_id) (partition prt_1 values less than(2),partition prt_2 values less than(3),partition prt_3 values less than(4),partition prt_4 values less than(5))';

v_sql := v_sql || v_prt_sql;

end if;

execute immediate v_sql;

sp_log('sp_crt_tbl_from_dic',v_step_no,'2',p_tx_date,p_tgt_tbl_name || '建表开始结束');

v_step_no := '2';

sp_log('sp_crt_tbl_from_dic', v_step_no,'1',p_tx_date,p_tgt_tbl_name || '赋权限开始');

v_grant_sql := 'grant select,insert,update,delete on ' || p_tgt_tbl_name ||

' to iclientoopr,iclientomoia';

if (v_grant_sql is not null) then

execute immediate v_grant_sql;

end if;

--- 给OPERQRY赋权限

v_grant_sql := 'grant select on ' || p_tgt_tbl_name || ' to OPERQRY';

if (v_grant_sql is not null) then

execute immediate v_grant_sql;

end if;

sp_log('sp_crt_tbl_from_dic',v_step_no,'2',p_tx_date,p_tgt_tbl_name || '赋权限结束');

--创建日标同义词

--step 4

v_step_no := '3';

v_crt_syn_sql := 'create or replace public synonym ' || p_tgt_tbl_name ||

' for iclientodata.' || p_tgt_tbl_name;

if (v_crt_syn_sql is not null) then

execute immediate v_crt_syn_sql;

end if;

sp_log('v_crt_syn_sql',v_step_no,'2',p_tx_date,p_tgt_tbl_name || '创建结束');

exception

when others then

sp_log('sp_crt_tbl_from_dic',v_step_no,'3',p_tx_date,p_tgt_tbl_name || '创建异常:' || SQLERRM);

end;

Oracle怎么查看表的大小?

每张表都是作为“段”来存储的,可以通过user_segments视图查看其相应信息。\x0d\x0a段(segments)的定义:如果创建一个堆组织表,则该表就是一个段。\x0d\x0asql:SELECT segment_name AS TABLENAME,BYTES FROM user_segments WHERE segment_name='表名'。\x0d\x0a解释:\x0d\x0asegment_name 就是要查询的表名(大写),BYTES 为表存储所占用的字节数。本sql的意思就是查询出表名和表所占的存储空间大小。

PLSQL怎样导出oracle表结构和数据

有时我们新建一个数据库时为了以后避免重复建设,可以把数据的表结构导出,下次建立同样的数据库时只需要导入就可以完成建设。以下介绍如何使用PLSQL导出oracle表结构:

双击桌面图标,打开PL/SQL Developer,输入用户名密码,登陆oracle数据库;

2

工具(tools)-export user objects是导出表结构;

3

在弹出的对话框中设置用户、导出对象、导出路径等参数;

4

单击导出(Export),开始导出;

5

导出结果如图:


网页标题:oracle如何表,oracle如何表示字符串中的换行
标题路径:http://azwzsj.com/article/hoochg.html