ora-01036: 非法的变量名/编号

一个存储过程,调试时没问题,但是在C#里运行就报错:

百度了一番,据说因为很多个错误都会报这个错,没发现合适我的(参数顺序匹配,大小匹配等),只好自己再试试:

我调用的方法:

OracleParameter[] parameters ={

new OracleParameter("vipno",OracleType.VarChar,50),

new OracleParameter("point",OracleType.VarChar,30),

new OracleParameter("str_reason ",OracleType.VarChar,20),  //str_reason 我这里多了个空格,

new OracleParameter("myresult",OracleType.Int32)

};

最后没辙只好只保留一个参数,去调试,即存储过程只有第一个参数,我调用也只用一个参数,其他参数注释掉,经过测试没有问题。

大概第三个参数时发现了问题,我的“”里面和存储过程的第三个参数相比多了一个空格,就是因为这个空格,导致出现了这个不好查找的错误。

问题到此也就解决了。

其实说到底还要要大家要有方法,多去尝试。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-14 16:31:08

ora-01036: 非法的变量名/编号的相关文章

ORA-01036: 非法的变量名/编号 解决方案

今天又一次遇到了 ORA-01036: 非法的变量名/编号 的问题,之前在项目中也遇见过这个问题,但是具体怎么解决的忘记了,今天又是遇见了,花了半个小时才解决.我今天遇到的情况是这样的: 存储过程中有这样一个参数:p_first_tree_name,单独测试存储过程的时候没出错,但是程序调用的时候就会出现  ORA-01036: 非法的变量名/编号  的错误,我的直觉是参数名不规范,后来我将这个参数改为 P_firstname之后问题解决了,所以我认为这种问题是命名不规范或冲突导致的.

plsql导入excel时报错:ORA-01036: 非法变量名/编号

导入oracle数据,选择工具->odbc导入->Excel 然后关于日期的插入出错,修改后如下:

指针、变量名、指针所指向的内存

1.和在使用一个数据之前必须要对数据进行初始化一样,否则可能会使得数据的值不确定,那就会给程序埋下很大的隐患,在使用指针之前也必须要对指针进行”初始化“例程1.1 #include<stdio.h> int main(void) { int *x; *x = 3; return 0; } 这样的代码可能会出现段错误,因为x指针不知道会指向哪一块内存,使用*x=3来更改那块内存的数据有可能访问到非法内存导致段错误,当然也有可能因为没访问到非法内存而没有产生段错误,但是一个健壮的程序不允许存在这样

史上最糟糕的两个变量名(转)

英文原文:The world’s two worst variable names 作为一个程序员,“起名字”是他们工作中非常重要的一部分.Phil Karlton就说过:“在计算机科学领域,有两大难题,如何让缓存失效(cache invalidation)和如何给各种东西命名.”虽然很难,但是每次在写代码的时候,命名又是不可回避的工作.无论是程序变量名还是数据库表名或者是表里的列名,甚至是文件系统中的文件名,以及你的项目名称.产品名称,给这些东西起名字可不是个轻松活儿. 糟糕的命名方式随处可见

C语言中变量名及函数名的命名规则与驼峰命名法

一.C语言变量名的命名规则:(可以字母,数字,下划线混合使用) 1. 只能以字母或下划线开始:2. 不能以数字开始:3. 一般小写:4. 关键字不允许用(eg:int float=2//error  float 为保留字不允许用): 二.函数名的命名规则 1.见名知意:2.自定义函数函数名首字母大写(库函数里的函数名都是以小写字母定义,为了区分库函数和自定义函数,避免冲突). 三.宏定义里面的变量 全大写 eg:#define SIZE 100(后面函数所有出现的SIZE全用100代替,它在所有

c++趣味之变量名,颠覆所有教科书的VisualStudio

GCC不参与这次的趣味. 所有的教程都会告诉你,c++的变量名,类名,函数名都应该是字字母或下划线开头的字母.数字.下划线组合,像这样: int _abc123; 实际上,VisualStudio并不遵守这个规范,而是更宽泛,这些都可以: #include <stdio.h> #include <tchar.h> #define 如果 if #define 打印 printf #define 返回 return #define 开始 { #define 结束 } #define 主

将变量名变为字符串

将变量名 变为字符串的方法,很神奇,今天刚发现 #include <iostream> using namespace std; #define _showMem(str,v) showMem(#str,v) struct student { string name; int age; char sex; }; void showMem(const char * str,int v) { cout<<str<<" "<<v<<

获取变量名字符串

需求特殊..想要获取变量或者任何实体的变量名字符串 譬如:  DateTime.Now 就得到 "Now" string abcccc= "123"; 就得到 "abcccc" 查找了很久..未果.. 最终请教高人..跟我说: "很简单啊, nameof " 实验结果却是可行.. 高人另外指点..nameof只有在FrameWork4.5.1以上才能使用.. 并且只有在VS2015中才能编译.. 真是  难者不会, 会者不难

模块的创建及变量名

# -*- coding: utf-8 -*- #python 27 #xiaodeng #模块的创建 #任何的.py文件都可以被认为是一个模块,在模块的顶层指定的所有变量名都会变成其属性,并可以导出供客户端使用 #module1.py def printer(x): print x ''' import module1 #导入该文件内的内容,创建一个拥有一个属性的模块对象,变量名printer,他引用了一个函数对象 #通俗点理解就是:在py文件中,所有的def函数其实也都可以理解为一个变量名