Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NLog到数据库(Oracle)_C#_Oracle_Nlog - Fatal编程技术网

C# 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

我正在尝试使用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" 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_日志表(日志用户、日志级别、日志日期、日志消息)中插入值(:日志用户、:日志级别、:日志日期、:日志消息);
我用dbProvider
Oracle.DataAccess.Client
对它进行了测试

对他人的警告:
我有一个名为保留字的变量,它引发了另一个异常。更多详细信息请参见上的第二个Oracle示例,尽管它使用了
System.Data.OracleClient
现在我得到了ORA-01036:非法变量名称/编号。。。