請問如何在Oracle中自建數據類型?最好有代碼實例.

zhuzhichao 2001-07-06 10:45:52
請問如何在Oracle中自建數據類型?最好有代碼實例.
...全文
252 30 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuzhichao 2001-07-17
  • 打赏
  • 举报
回复
我真想將Oracle砸掉.
zhuzhichao 2001-07-17
  • 打赏
  • 举报
回复
up一下.
zhuzhichao 2001-07-17
  • 打赏
  • 举报
回复
Oracle真的不行嗎?
YYboy 2001-07-17
  • 打赏
  • 举报
回复
strWord VARCHAR(3)
SUBTYPE t_word is strWord%TYPE
zhuzhichao 2001-07-17
  • 打赏
  • 举报
回复
最後一次up,明早來看.
還沒有解決的方法就結帖.
zhuzhichao 2001-07-17
  • 打赏
  • 举报
回复
up
shier 2001-07-17
  • 打赏
  • 举报
回复
书上是这么写的
Create type type_name as object
(xxx varchar(10),
yyy number(2),
.........)
rjcludy 2001-07-17
  • 打赏
  • 举报
回复
oracle8i以上 同时支持java和pl/sql
你可以用oracle8i以上的java编程
zhuzhichao 2001-07-17
  • 打赏
  • 举报
回复
to rjcludy():
並不是系統的不夠用.
varchar2可以最多4000個字符.
nvarchar2可以有2000.
我只是想形成一個范式.
我是搞pb出身,現在搞Java.
我看過sun公司的源碼,不管是誰寫的,都像出自一台會coding的機器.
定義,風格都是一樣.
我公司的代碼規範性也很強,全公司的source像是出自一人之手.
比如:數據的定義,String型就是str***,int型就是n***,所有的method,function前面都有注釋等等.
而關於SQL的數據類型的定義,我想定義出許多常用的自定義類型.
比方說: TYPE_v_compid為varchar2(3),那麼任何一張表的create中只要用到companyid這個字段時,我就可以用TYPE_v_compid去定義它而非varchar2(3).

這就是一個最簡單的范式.
zhuzhichao 2001-07-17
  • 打赏
  • 举报
回复
to rjcludy():
快幫我看看
http://www.csdn.net/expert/topic/197/197247.shtm
rjcludy 2001-07-17
  • 打赏
  • 举报
回复
我faint
你要用自定义类型作什么呢???

rjcludy 2001-07-16
  • 打赏
  • 举报
回复
oracle中不能在表定义中使用

zhuzhichao 2001-07-16
  • 打赏
  • 举报
回复
to am2000(最后一滴水):
但是至少Oracle中沒有sp_addtype這個sp呀.
am2000 2001-07-16
  • 打赏
  • 举报
回复
oracle中应该是一样的啊。
zhuzhichao 2001-07-16
  • 打赏
  • 举报
回复
SQLServer中可以這麼做:
sp_addtype TYPE_v_CMPID, 'varchar(3)' --公司編號

然後我在create表的時候可以這樣:
create table customer
(
companyid TYPE_v_CMPID not null
)

不知道Oracle中怎樣才能做到這樣?
zhuzhichao 2001-07-16
  • 打赏
  • 举报
回复
就相當與SQLServer中的自定義數據類型.
am2000 2001-07-16
  • 打赏
  • 举报
回复
自定义数据类型应该想当于域(domain)吧
zhuzhichao 2001-07-16
  • 打赏
  • 举报
回复
to rjcludy():
現在可以通過了,但是我要是想使用這個數據類型該怎麼做.
比如說這樣:
create table b
(
b1 v_temp.a null,
b2 v_temp.b not null
);
rjcludy 2001-07-16
  • 打赏
  • 举报
回复
不明白,sqlserver中自定义数据类型是什么??不是跟C、C++ 中的自定义类型一致??
要是一致,那我说的没错。
sql*plus等 中不能设置数据类型,只能设置一些工具的参数
一个完整的例子:
declare
type t_temp is record (A varchar2(100),B number(10));
v_temp t_temp;
begin
v_temp.a := 'asdfdsa';
v_temp.b := 123;
end;
(在sql*plus和sql worksheet中可以用)
zhuzhichao 2001-07-16
  • 打赏
  • 举报
回复
to rjcludy():
我的意思是說可以像SQLServer中自定義數據類型一樣的.
可以在SQL*Plus或是SQL Worksheet中輸入一些代碼就可以定義出自己的類型.
type是什麼?在SQL Worksheet中語法通不過.(Oracle 8)
加载更多回复(10)

2,598

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧