分类目录归档:oracle数据库

VS使用服务器资源管理器连接Oracle数据库提示OCIEnvCreate 失败, 返回代码为-1,但错误消息文本不可用

内容来自互联网:

查看安装目录(例如D:\app\Administrator\product\11.2.0\client_1\Network\Admin)下是否缺少listener.ora以及 tnsnames.ora文件

1、配置tnsnames.ora。配置方法网上很多。

2、完善环境变量配置。

3、最重要的一点,注册表加入下面键值

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/Environment]

“LD_LIBRARY_PATH”=”F:/*/bin”

“NLS_LANG”=”AMERICAN_AMERICA.ZHS16GBK”

“TNS_ADMIN”=”F:/*/bin”

具体F:/*/bin路径根据实际的oracle安装目录下bin文件夹所在而定。注册表加入下面键值后,重新启动计算机,重新调试程序,添加oracle服务器连接,检测是否成功

*********************************************分割线************************************************

另一种原因可能是由于本地计算机oracle客户端以及服务端共存以及oracle主目录没有asp.net访问权限的原因,修改方法.

解决方案一:

1、在资源管理器中打开网站所在文件夹。
“工具”——“文件夹选项”——“查看”,关闭“使用简单文件共享”。

右键点击oracle主目录
主要是将oracle主目录oracle\的读写权限赋予asp.net或者是IUSER_..和IWAM_..,重启计算机。

解决二:

打开在IIS中的WEB属性--主目录--执行权限【改为-脚本和可执行文件】;

-应用程序池【改为-MSSharePointAppPool】,刷新

参考连接来自这里

 

简单的oracle表自动增长实现

–建示例表


CREATE TABLE test(
ID Number(4) NOT NULL PRIMARY KEY,
NAME VARCHAR(25),
);

–定义一个sequence序列

create SEQUENCE sequence_test
INCREMENt BY 1 --增量大小
START WITH 1 --增量起始位置
NOMAXVALUE --不设置最大值
NOCYCLE --一直累加不循环
NOCACHE --不建立缓冲区

/*
以上代码完成了一个序列(sequence)的建立过程,
名称为emp_sequence,
范围是从1开始到无限大(无限大的程度是由你机器决定的),
nocycle 是决定不循环,如果你设置了最大值那么你可以用cycle 会使seq到最大之后循环.
对于nocache顺便说一下如果你给出了cache值那么系统将自动读取你的cache值大小个seq
,这样在反复操作时会加快运行速度,但如果遭遇意外情况如当机了或oracle死了,则下次取出的seq值将和上次的不连贯.
*/

–仅有表和序列还无法进行自动增长,需要添加一个触发器,如下
create or replace trigger tr_increment_test before
insert on test for each row when(new.id is null)
begin
select sequence_test.nextval into:new.id from dual;
end;

–触发器创建完成,注意:此处new.id中的id根据表的实际主键名称而定

–检验数据插入
insert into test(name)values('basketball');
insert into test(name)values('football');

/*就此完成oracle对表插入自动增长的设置
总结:
1、建表
2、建序列
3、建触发器
*/