C# NLog到数据库(Oracle)
我正在尝试使用NLog登录到Oracle数据库,该数据库已经创建了表,但当我尝试记录某些内容时,会出现异常:C# NLog到数据库(Oracle),c#,oracle,nlog,C#,Oracle,Nlog,我正在尝试使用NLog登录到Oracle数据库,该数据库已经创建了表,但当我尝试记录某些内容时,会出现异常: **ORA-00936: missing expression** ORA-00928:缺少选择关键字 我的NLog.config文件是: <?xml version="1.0" ?> <nlog autoReload="true" throwExceptions="true" internalLogFile="${basedir}/App_Data/nlog.txt
**ORA-00936: missing expression**
ORA-00928:缺少选择关键字
我的NLog.config文件是:
<?xml version="1.0" ?>
<nlog autoReload="true" throwExceptions="true" internalLogFile="${basedir}/App_Data/nlog.txt" internalLogLevel="Debug"
internalLogToConsole="true">
<targets>
<!--Useful for debugging-->
<target name="filelog" type="File" fileName="C:/App_Data/Site.log"
layout="${date}: ${message}" />
<target name="databaselog" type="Database">
<dbProvider>Oracle.DataAccess.Client</dbProvider>
<!-- database connection parameters -->
<!-- alternatively you could provide a single 'connectionstring' parameter -->
<connectionString>DATA SOURCE=database;PERSIST SECURITY INFO=True;USER ID=user;Password=password;Validate Connection=true</connectionString>
<commandText>
insert into RS_LOGTABLE ([log_user],[log_level],[log_date],[log_message]) values(@log_user,@log_level,@log_date,@log_message);
</commandText>
<parameter name="@log_user" layout="${message}"/>
<parameter name="@log_level" layout="${message}"/>
<parameter name="@log_date" layout="${date}"/>
<parameter name="@log_message" layout="${message}"/>
</target>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="filelog" />
<logger name="*" minlevel="Trace" writeTo="databaselog" />
</rules>
</nlog>
我已经尝试在没有括号的情况下插入,但得到了另一个例外:
**ORA-00936: missing expression**
我想现在对你来说有点晚了,但我希望我的解决方案能对其他人有所帮助 我在
commandText
和parameter
标记处更改了冒号的字符@
,并将其完全删除。我不使用括号,它开始工作了
这样应该是正确的:
<commandText>
insert into RS_LOGTABLE (log_user,log_level,log_date,log_message) values(:log_user,:log_level,:log_date,:log_message);
</commandText>
<parameter name="log_user" layout="${message}"/>
<parameter name="log_level" layout="${message}"/>
<parameter name="log_date" layout="${date}"/>
<parameter name="log_message" layout="${message}"/>
在RS_日志表(日志用户、日志级别、日志日期、日志消息)中插入值(:日志用户、:日志级别、:日志日期、:日志消息);
我用dbProviderOracle.DataAccess.Client
对它进行了测试
对他人的警告:
我有一个名为保留字的变量,它引发了另一个异常。更多详细信息请参见上的第二个Oracle示例,尽管它使用了
System.Data.OracleClient
现在我得到了ORA-01036:非法变量名称/编号。。。