表A中有一个字段AID ,表B中也有一个字段BID,其中, 'ABC' + A.AID = B.BID 怎么添加这个约束呢?
解决方案 »
- win7环境中 Oracle数据库 plsql查询速度过慢
- 关于dbms_space.free_blocks?
- oracleCSService 启动不了!高手帮忙!
- 打开SQL*plus worksheet时,窗口闪一下就消失了,不知道是怎么回事?
- 麻烦大家帮忙解释下一简单的c连接oracle的程序!!!!!!!!!!!谢谢!!!!!!!!!!!!
- 请帮我看看这个SQL错在哪?
- 做了一段时间ORACLE开发,今天突然发现有些概念还是不懂,见笑了,进来看看吧.多谢大家。
- 在线等待......
- 哪为大虾解释一下内联接,外联接,左连接,右连接
- Oracle数据库之间同步问题
- 反编译ORACLE的存贮过程问题
- 在线等,求教sql语句
'ABC' 做为系统常量,取出时'ABC' || BID即可。
如果要在A表中添加一個列,此列的值限定為'ABC'||A.AID,這樣的列該如何加呢?我知道在SQL SERVER中添加一個計算列就可以了,但在Oracle中該如何實現呢?還望有大俠指教!!
但觉得 zealot_zk(风中追风) 是方法是可以的.另外 zjp8310(z一阵风z) ,为添加的列添加一个约束 ('ABC' || A.AID ),默认值为 ('ABC' || A.AID ),即可.不知在 SQL SERVER 中添加计算列怎么添加?
不能直接在字段定义中设置
SQL> ALTER TABLE TEST.TT MODIFY B DEFAULT 'ABC' || A;
ALTER TABLE TEST.TT MODIFY B DEFAULT 'ABC' || A
*
ERROR 位于第 1 行:
ORA-00984: 列在此处不允许
表A中有一个字段AID、C1,其中C1的值為字串'ABC'連上AID的值,也就是說,無論何時,C1的值總是'ABC'+AID,這種方式在SQL SERVER中相當容易實現,而且以後表A中添加數據時,隻要指定AID的值即可,C1字段的值會自動被插入(正因為可以自動插入,所以插入數據時不允許指令C1列值),如,我插入下面一列值到表A中:
INSERT INTO 表A VALUES('XXXX');--不允許使用INSERT INTO 表A VALUES('XXXX','ABC'+'XXXX');
插入後我再查詢:
SELECT * FROM 表A;
這時顯示的數據就是:
AID C1
---- ----
XXXX ABCXXXX
可以看到C1列值被自動設置為'ABC'+AID了(而且不允許插入時指定它的值),這種效果在Oracle中該如何實現呢?難道隻有通過觸發器的方式嗎?要是這樣的話,那真的比SQL SERVER還差了!!!
------
我是说可以不用添加一列。因为'ABC'是一常量,取出来的时候用拼串的方式拼上完全可以满足需求。系统可以建这样一个表,将'ABC'这样的常量存起来,便于维护。
waterfirer(水清)的方法是可行的.^_^
zealot_zk(风中追风) 的方法中,添加的 'ABC' || a.aid 方法,在 Oracle 中试不通.可以不行.另外,我还有一个触发器的问题,再开一贴,高手请进看看:http://community.csdn.net/Expert/topic/4469/4469345.xml?temp=5.891055E-02