在ASP.NET+ORACLE添加数据记录并让ID自动增量

来源:互联网 发布:淘宝原图恢复 编辑:程序博客网 时间:2024/06/06 00:24
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
IDu_ad">.Eyo384{display:none;}

ASP.NET+ORACLE添加数据记录并让ID自动增量需要在ORACLE中设序列和触发器即可,切记不是索引,ASP.NET中不管ID,具体如下:


1、建立序列:


CREATESEQUENCEseq_emergency_ID
NOCYCLE
MAXVALUE9999999999
STARTWITH2;

 
2、建立触发器:

 
CREATEORREPLACETRIGGERset_emergency_ID
BEFOREINSERTON"EMERGENCY"
FOREACHROW
DECLARE
next_emergency_IDNUMBER;
BEGIN
--GetthenextemergencyIDfromthesequence
SELECTseq_emergency_ID.NEXTVAL
INTOnext_emergency_ID
FROMdual;


--usethesequencenumberastheprimarykey
--fortherecordbeinginserted
:new.ID:=next_emergency_ID;
END;

 
如果在企业管理器中创建,在触发器说明中填:


DECLARE
next_emergencycb_IDNUMBER;
BEGIN
--GetthenextIDnumberfromthesequence
SELECTseq_emergencycb_ID.NEXTVAL
INTOnext_emergencycb_ID
FROMdual;


--usethesequencenumberastheprimarykey
--fortherecordbeinginserted
:new.ID:=next_emergencycb_ID;
END;


自己总结的常用ORACLEText文本检索

 
ORACLEText文本检索:(先要建立CONTEXT或CTXCAT索引,然后如下)(还可以在from前加,SCORE(10)来观察检索到的项目的得分)

 
1.单词的精确匹配检索


selectcbID,title(列名)fromemergency(表名)wherecontains(title,'关于')>0;是从title中检索含词“关于”的cbID和title字段。

 
2.多个单词精确匹配


selectcbID,titleformemergencywherecontains(title,'关于AND请示')>0;是从title中检索含词“关于”和“请示”的上述字段。


也可selectcbID,titleformemergencywherecontains(title,'关于AND请示',NULL)>0;意思同上,不是检索短语而是两个单词,注意!

 
3.短语精确匹配

selectcbID,title(列名)fromemergency(表名)wherecontains(title,'doctorvisits',NULL)>0;将精确匹配doctorvisits短语


如果要用AND,OR,MINUS等保留字,应该使用转义符{},如doctor{and}visits 


4.搜索互相接近的词语


selectcbID,title(列名)fromemergency(表名)wherecontains(title,'关于NEAR请示')>0;
selectcbID,title(列名)fromemergency(表名)wherecontains(title,'NEAR((关于,请示),10)')>0; 是指指定的两个词在10个词之内

 
5.在搜索中使用通配符(多字符通配符是%,单字符通配符是-)


selectcbID,title(列名)fromemergency(表名)wherecontains(title,'worker%')>0;是检索worker开头的单词,单字通配最多扩展3字符


6.模糊匹配搜索


selectcbID,title(列名)fromemergency(表名)wherecontains(title,'?关于')>0; (前面得加一个问号)


7.使用ABOUT运算符来搜索文档的主题


selectcbID,titleformemergencywherecontains(title,'ABOUT(住房)',NULL)>0;


注意以上如果是用CONTEXT索引时,基表更新时文本索引并不更新,为了使索引同步,应该执行CTX_DLL程序包的SYNC_INDEX过程如下:


EXECUTECTX_DLL.SYNC_INDEX('REVIEW_INDEX');

<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击