ORA-02287:此处不允许序号(sequence number not allowed here) 的避免以及强制实现
2016-02-24 23:21
786 查看
白天在过程包中使用序列产生的一个错误,记录一下
在select语句中直接使用序列来产生主键id,但是oracle提示此处不允许使用序列。
select SEQ_B_LOG_ID.NEXTVAL id , name from dual
解决方法,使用函数取序列值
create or replace function get_seq_next (seq_name in varchar2) return number
is
seq_val number ;
begin
execute immediate 'select '|| seq_name|| '.nextval from dual' into seq_val ;
return seq_val ;
end get_seq_next;
在存储过程中调用取序列函数来替代直接取序列的方法即可。
FUNCTION GET_SEQ_NEXT
RETURN NUMBER IS
SEQ_VAL NUMBER;
BEGIN
EXECUTE
IMMEDIATE 'select GAS_CA.SEQ_A_RCVBL_GAS_FLOW_ID.NEXTVAL@TO_SJQYXLKfrom dual'
INTO SEQ_VAL;
RETURN SEQ_VAL;
END GET_SEQ_NEXT;
在select语句中直接使用序列来产生主键id,但是oracle提示此处不允许使用序列。
select SEQ_B_LOG_ID.NEXTVAL id , name from dual
解决方法,使用函数取序列值
create or replace function get_seq_next (seq_name in varchar2) return number
is
seq_val number ;
begin
execute immediate 'select '|| seq_name|| '.nextval from dual' into seq_val ;
return seq_val ;
end get_seq_next;
在存储过程中调用取序列函数来替代直接取序列的方法即可。
FUNCTION GET_SEQ_NEXT
RETURN NUMBER IS
SEQ_VAL NUMBER;
BEGIN
EXECUTE
IMMEDIATE 'select GAS_CA.SEQ_A_RCVBL_GAS_FLOW_ID.NEXTVAL@TO_SJQYXLKfrom dual'
INTO SEQ_VAL;
RETURN SEQ_VAL;
END GET_SEQ_NEXT;
相关文章推荐
- UIAutomator定位Android控件的方法实践和建议
- Correlated Subqueries 相关子查询
- iOS 用QuickLook浏览文件和图片
- UVA 12166 Equilibrium Mobile
- 最新 Sublime Text3 激活码 (Build 3103 有效)
- ui进阶第五天,绘图的基本介绍
- Queue Java
- response.setContentType与 request.setCharacterEncoding 区别
- Foundation框架下的常用类(NSNumber, NSValue, NSDate,NSDateFormatter)
- leetcode ---Unique Paths
- UEditor 报错:Uncaught ReferenceError: UE is not defined; Uncaught ReferenceError: UM is not defined
- ios-UI控件精讲之【6】-UIImageView
- ios-UI控件精讲之【5】-UIImage
- 通过Gradle来取的Jenkins的build
- UI美化概述
- suid seuid 当前用户ID 有效用户ID
- 5.UINavigationController
- web.xml is missing and <failOnMissingWebXml> is set to true
- iOS-UI-基本控件之UISwitch
- UICollectionView 使用 介绍