第一次访问页面的时候,报出的异常信息如下:System.DllNotFoundException: libclntsh.so
at (wrapper managed-to-native) System.Data.OracleClient.Oci.OciCalls/OciNativeCalls:OCIEnvCreate (intptr&,System.Data.OracleClient.Oci.OciEnvironmentMode,intptr,intptr,intptr,intptr,int,intptr)
at System.Data.OracleClient.Oci.OciCalls.OCIEnvCreate (System.IntPtr& envhpp, OciEnvironmentMode mode, IntPtr ctxp, IntPtr malocfp, IntPtr ralocfp, IntPtr mfreep, Int32 xtramem_sz, IntPtr usrmempp) [0x00000] in :0
at System.Data.OracleClient.Oci.OciEnvironmentHandle..ctor (OciEnvironmentMode mode) [0x00000] in :0
at System.Data.OracleClient.Oci.OciGlue.CreateConnection (OracleConnectionInfo conInfo) [0x00000] in :0
at System.Data.OracleClient.OracleConnectionPoolManager.CreateConnection (OracleConnectionInfo info) [0x00000] in :0
at System.Data.OracleClient.OracleConnectionPool.CreateConnection () [0x00000] in :0
at System.Data.OracleClient.OracleConnectionPool.GetConnection () [0x00000] in :0
at System.Data.OracleClient.OracleConnection.Open () [0x00000] in :0
at System.Data.Common.DbDataAdapter.Fill (System.Data.DataTable dataTable, IDbCommand command, CommandBehavior behavior) [0x00000] in :0
at System.Data.Common.DbDataAdapter.Fill (System.Data.DataTable dataTable) [0x00000] in :0
at (wrapper remoting-invoke-with-check) System.Data.Common.DbDataAdapter:Fill (System.Data.DataTable)
再次刷新同样的页面,异常信息居然变成了:
System.NullReferenceException: Object reference not set to an instance of an object
at System.Data.OracleClient.OracleConnectionPool.GetConnection () [0x00000] in :0
at System.Data.OracleClient.OracleConnection.Open () [0x00000] in :0
at System.Data.Common.DbDataAdapter.Fill (System.Data.DataTable dataTable, IDbCommand command, CommandBehavior behavior) [0x00000] in :0
at System.Data.Common.DbDataAdapter.Fill (System.Data.DataTable dataTable) [0x00000] in :0
at (wrapper remoting-invoke-with-check) System.Data.Common.DbDataAdapter:Fill (System.Data.DataTable) at Citms.Data.DataAccess.ExecuteProcedure (System.Data.Common.DbConnection connection, System.String procedureName, Parameter[] paramers, System.Collections.Generic.Dictionary`2& outParamers) [0x00000] in :0
作者:weq weq 发布时间:20年07月24日 可选操作:
删除 回复因为没有找到你系统中有 libclntsh.so 这个oracle库。是你没有设置好有关oracle环境变量造成的。
作者:yunei 发布时间:20年07月24日 可选操作:
删除 回复export ORACLE_BASE=/usr/lib/oracle/12.2
export ORACLE_HOME=$ORACLE_BASE/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$ORACLE_HOME:$PATH
已经在/etc/profile文件中增加上述配置,且sqlplus命令可用
作者:weq weq 发布时间:20年07月28日 可选操作:
删除 回复而且在位置/usr/lib/oracle/12.2/client64/lib/有个libclntsh.so软连接文件连接至libclntsh.so.12.1
作者:weq weq 发布时间:20年07月28日 可选操作:
删除 回复少做一步配置,应该要在目录【/etc/ld.so.conf.d/】下建立文件oracle-client.conf,并写入oracle lib位置,如【/usr/lib/oracle/12.2/client64/lib】
作者:weq weq 发布时间:20年07月28日 可选操作:
删除 回复