Oracle存储过程报错:pls 00201 必须声明标识符

刚接触plsql
我在当前用户创建了一个存储过程并编译成功,然后调用 为什么报错
ora-06550:第4行第3列
pls 00201 必须声明标识符
代码如下

创建:
create or replace procedure test_sse(v_num OUT VARCHAR2)
IS
BEGIN
  v_num :='lala';
  dbms_output.put_line('v_num:'||v_num);
END;

调用:
DECLARE
ta Varchar2(10);
BEGIN
  test_see(ta);
  dbms_output.put_line(ta);
  COMMIT;
  END;
0

1个回答

test_sse
写成test_see了,一个字母不对

0
qq_39731741
角谷 烦!就当是送分了,,,,
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
oracle运行存储过程报PLS-00201
在工作中偶然遇到读取Oracle数据库中的字段时出现错误。oracle运行存储过程报PLS-00201: 必须声明标识符’PROC_GETNEXTVALUE’,网上查了一下是因为没有存储权限。 如果要在存储过程中执行该包,必须显示的(明确的)为该用户赋予其执行权。使用SYS或者SYSTEM登录,为其赋予execute 权。 具体行为没有说明,于是我百度了一下,要授予当前用户execute
PL/SQL在输入时报错,PLS-00201:必须声明标识符。
PL\SQL在输入字符串类型时需要添加单引号,否则报错:PLS-00201:必须声明标识符。
pls - 00201: 必须声明标识符'FN_GETSQLSTR'
以下该存储过程在PL/s里执行通过之后,编辑该存储过程发现错误提示:rnpls - 00201: 必须声明标识符'FN_GETSQLSTR'rn请问该如何声明该标识符????????????rnrn--------------------------------------------rn--该存储过程完成快速继承功能 rnCREATE OR REPLACE PROCEDURE pr_quickExtend (prm_date VARCHAR2,prm_endDay VARCHAR2, prm_mode VARCHAR2) rn --传递年月rn --得到继承的截止日rnIS rn --定义变量 rn s_year VARCHAR2(4); --年 rn s_month VARCHAR2(2); --月 rn v_rest_code VARCHAR2(20); --休息项目的编码 rn s_psndoc VARCHAR2(20); ---人员编码 rn s_beginDay VARCHAR2(2); ---被继承日期 rn s_itemData VARCHAR2(30);---被继承项目编码 rn s_sql VARCHAR2(4000); ----生成的SQL语句 rn --定义cursor rn CURSOR my_cursor(v_rest_code VARCHAR2) IS rn SELECT pk_psndoc, DAY, itemdata rn FROM vi_data rn WHERE YEAR = substr(prm_date, 1,4) rn AND period = substr(prm_date, 5,2) rn AND pk_psndoc||DAY IN(SELECT pk_psndoc||MAX(DAY) rn FROM vi_data rn WHERE YEAR = substr(prm_date, 1,4) rn AND period = substr(prm_date, 5,2) rn AND itemdata <> v_rest_code rn AND itemdata IS NOT NULL rn group by pk_psndoc rn having max(day)
解决Oracle报错“必须声明标识符”
写了一段很简单的代码,输出学号01的学生名字: declare v_sname sname.student%type; --报错行 begin select sname into v_sname from student where sn0='01'; dbms_output.put_line(v_sname); end; 结果第二行报错:必须声明标识符 'SNA...
笔记# 必须声明标识符
没有此存储过程。
mybatis调用ORACLE存储过程
myibatis调用ORACLE存储过程通过本文简单描述下myibatis如何调用存储过程,以及获取相应的结果集。 1、数据库表结构create table TSYS_USER ( id NUMBER(38) not null, user_name VARCHAR2(100), login_name VARCHAR2(100), user_pas
PLS-00201: 必须声明标识符
昨天的ORA-12154: TNS: 无法解析指定的连接标识符 问题终于解决,随之而来的是rnrnPLS-00201: 必须声明标识符 'ORA_ASPNET_MEM_GETPWDWITHFMT'问题。rnrn但无论是程序还是SQL里都 找不到 'ORA_ASPNET_MEM_GETPWDWITHFMT'这个东西,也没见有这个存储过程,怎么会出这个错
C++中报错——“min”:未声明的标识符
环境:VS2019社区版 问题:编译提示“min,找不到标识符” 解决方案:添加代码 #include &lt;algorithm&gt;
Oracle dbms_crypto加密解密包介绍
oracle从10gR2版本开始支持这个包,利用这个函数可以对字段进行加减密。包括可以给RAW和LOB类型的字段加密和解密,比如声音和图片,支持以下加密算法Data Encryption Standard (DES), Triple DES (3DES, 2-key and 3-key)Advanced Encryption Standard (AES)MD5, MD4, and SHA-1 cr...
已经声明过变量,依然报 C2065:未声明的标识符错误 解决办法
vs,c++编译代码的时候,遇到很奇怪的问题,明明在前面,已经声明过变量,编译的时候仍然报 未声明的标识符错误,定位错误地方,在赋值之前,明明定义过变量了啊,非常疑惑,下面贴上代码,火眼金睛的你能不能找到原因:      if (fr = mat.cols() || fr + 1 >= mat.rows()) //return Color::NO; Color ret = Color
C语言中要求在使用标识符之前声明它们
   C11标准要求声明标识符的类型,禁止隐式函数声明,C90标准允许隐式的确定变量 和函数的类型。因此,一些现有的遗留代码使用隐式类型,一些C编译器为了支持遗留 代码仍然允许隐式类型,但是新的代码不应该再使用。这样的实现可以选择使用隐式 声明,并继续翻译,以支持使用这个特性的现有程序。 1、隐式int C不再允许不指定类型的声明,C11标准6.7.2节表示:   每个声明的声明指示符...
在进行oracle trace 时报 PLS-00201: 必须声明标识符 错误的解决办法
报错信息:   SQL&amp;gt;  exec sys.dbms_system.set_sql_trace_in_session(11,13,true);BEGIN sys.dbms_system.set_sql_trace_in_session(11,13,true); END;       *第 1 行出现错误:ORA-06550: 第 1 行, 第 7 列:PLS-00201: 必须声明标识符 ...
PL/SQL复习一 标识符命名规则
变量 :v_作为前缀 例如:v_sal, v_job 常量: c_作为前缀 例如:c_rate 游标:_cursor作为后缀 例如:emp_cursor 异常:e_作为前缀 例如:e_integrity_error plsql表类型:_table_type作为后缀 例如sal_table_type plsql表变量:_table作为后缀 例如:sal_table plsql记录类...
已经包含头文件仍然 出现,错误“未声明的标识符”
由于当前在往一个比较大的项目中添加文件,文件又有相似性所以采取了复制的方式,最后出现了一个大疏漏。 在总的.cpp文件中调用新文件中的函数,在包含了新文件的.h头文件的情况下仍然说没有找到标识符,在网上找了很多方法,其中比较玄学的一种是   在VS2012下进行VC++调试时,出现这样一种错误:error C2065:未声明的标识符,当时感觉十分怪异,为什么说怪异呢?因为如果在.cpp中未引...
Qt 插件机制以及插件中几个重要的宏
简述: Qt 插件类必须继承自 QObject 类和插件接口类。若没有 Q_DECLARE_INTERFACE 和 Q_INTERFACES 这两个宏,就无法对从插件中获取的实例指针进行 qobject_cast 映射。可以通过 QPluginLoader 类调用插件类。 1、接口类 首先,定义一个纯虚类作为插件接口类。
C++ “greater”: 未声明的标识符错误
本人Visual Studio2015,在使用C++ STL中的set,multiset时定义multiset &amp;lt;int,std::greater&amp;lt;int&amp;gt;&amp;gt; m 报错C++ “greater”: 未声明的标识符错误解决方案:在头文件中加入#include&amp;lt;functional&amp;gt;即可解决...
PLS-00103-存储过程中运行alter table
存储过程中运行alter table出现如下错误:     Compilation errors for PROCEDURE PDS.UNDOMERCHANTACCOUNTError: PLS-00103: Encountered the symbol &quot;ALTER&quot; when expecting one of the following: begin case decla...
Oracle触发器编译错误之ORA-04098: 触发器 无效且未通过重新验证
在使用Oracle触发器时,先通过自建两个表作为测试的表,目的时让这两个表进行行数据同步,当增删改一个表当数据时,会同步修改另一个表当数据。 当对自己项目中实际使用的表创建触发器进行数据同步时,发现PL/SQL的左侧窗口的Objects窗口中,Triggers下自己创建的触发器左上角有个小红叉号,右键执行Recompile时会报重新编译出错:compiled but with compilatio
存储过程参数过长报错的处理
下面为具体解决方式: (1)新建一张数据库表,用来存参数,如下图   (2)将参数入参数表,入时要注意不要按行入要按列入。 (3)将存储过程的查询结果与该表进行关联 注:要重点注意判空操作,在经过我的分析后,决定用下图方式进行处理
Oracle存储过程中声明数组
-
dbms_lock授权,解决存储过程中出现编译错误
15:25:49 SQL&gt; conn bktest/...@bi as sysdba 已连接。 15:25:56 SQL&gt; revoke execute on dbms_lock from bktest; 撤销成功。 已用时间: 00: 00: 00.16 15:26:11 SQL&gt; conn ...
oracle创建存储过程定时任务时报错的问题
写了四张表的存储过程,并要分别建四个定时任务去执行这四个过程,其中三个存储过程创建,然后创建定时任务,没问题,维有一个始终报错,报的错也看不懂是啥。 于是就在网上查找相关问题码,最后找到一篇文章说是编译存储过程时有错误导致定时任务无法创建, 于是就在网上查找怎么查看编译错误, 后来找到,原来在plsql里,用sqlwindow只能执行sql语句,因为创建存储过程是用create or rep
vc2010 “CString”: 未声明的标识符
在非mfc下 使用CString 会导致上面错误: 解决办法: (1) 如果你使用VC.net那么:使用MFC:包含cstringt.h; (2) 不使用MFC:包含atlstr.h   或者 #include 当以上操作都不成功时,做如下操作:     选择所报错CPP文件后鼠标右键 属性-C/C++-预编译头-不使用预编译头。
错误:必须声明标识符 'UTL_FILE'
CREATE OR REPLACE PROCEDURE EMPLOYEE_REPORT(rn dir VARCHAR2, filename VARCHAR2) rn ISrn file UTL_FILE.FILE_TYPE;rn CURSOR empc IS SELECT last_name, department_id, salary /*查出所有需要的信息*/rn FROM employees ORDER BY department_id;rn BEGINrn file:= UTL_FILE.FOPEN (dir, filename, 'w');rn--如果文件没打开则打开它rn IF NOT UTL_FILE.IS_OPEN(file) THEN rnfile := UTL_FILE.FOPEN (dir, filename, 'w');rn END IF; rnrn FOR emp_rec IN empc LOOPrn UTL_FILE.PUT_LINE (file, 'DEPARTMENT: ' || emp_rec.department_id);rn UTL_FILE.PUT_LINE (file,' EMPLOYEE: ' || rn emp_rec.last_name ||rn ' earns: ' || emp_rec.salary);rn END LOOP;rn UTL_FILE.PUT_LINE(file,'*** END OF REPORT ***');rn UTL_FILE.FCLOSE (file);rnEXCEPTIONrn WHEN UTL_FILE.INVALID_FILEHANDLE THENrn RAISE_APPLICATION_ERROR(-20001,'Invalid File.');rn WHEN UTL_FILE.WRITE_ERROR THENrn RAISE_APPLICATION_ERROR (-20002, 'Unable to write to file');rnEND EMPLOYEE_REPORT;rnrn提示::行 4 上出现错误: PLS-00201: 必须声明标识符 'UTL_FILE'rn该怎么改啊
类型参数声明必须是标识符
public class SeqList // 此句错误 ??rn rn public SeqList sqList;rn public int getLength()rn rn sqList.getLength(); rn rnrn public int BinarySearch(SeqList sqList, int key)rn rn sqList[0] = key; //存放要查找的记录rn int mid = 0;rn int flag = -1;// 标志rn int low = 1; //设置初始区间的下限值rn int high = sqList.getLength(); // 设置初始区间的上限值rnrn //记录没有查找完rn while (low <= high)rn rn //middle rn mid =( low + high)/2;rn if (sqList[0] == sqList[mid])rn rn flag = mid;// search successful ,then save record to flag 's rn break;rn rn else if (sqList[0] < sqList[mid])rn // left binary arearn high = mid - 1;rnrn rn elsernrn // right binary arearn low = mid + 1;rn rn rnrn rn if (flag > 0)rn rn Console.WriteLine("search is successful");rn return flag;rn rn elsern rn Console.WriteLine("search is failed ");rn return -1;rn rnrn rnrnrnrn错误 1 类型参数声明必须是标识符,不能是类型 C:\Inetpub\wwwroot\StrigDs\StrigDs\Form2.cs 73 26 StrigDsrnpublic class SeqList // 此句错误 ??
dbms_lock控制串行详解
1          使用dbms_lock包控制串行     在pl/sql代码块中,有些操作代码块不能被多个会话同时进行执行,比如生成中间数据表(如先清除,后插入中间数据), 并且此表的数据在后续业务处理总需要使用,如果此部分代码块被另个会话调用,则会造成中间数据表的数据在同一个会话中不完整。 因此当有类似这样的需求时,就可能需要在pl/sql块中使用dbms_lock包控制来控制此部分
VS中C++报错:应输入声明
琢磨半天没琢磨明白代码 改了好几种都错了 最后:工具”-----&amp;gt;“选项”-----&amp;gt;“C/C++”-----&amp;gt;“高级”-----&amp;gt;“禁用自动更新”,禁用自动更新改成:“True”。 ...
vs报错'xxx'未定义的标识符
看到这个错的时候我第一反应就是这个变量我明明定义了的啊,为啥会报未定义的标识符!因为这种错ide工具自己都会给你标错。然而最后发现出现这种问题的原因就是字符集的问题。在报错信息上面有警告信息’xxx’文件不转换为Unicode字符会造成数据丢失,于是把这个文件转换为Unicode字符就好了。 ...
windows10 VS2017 下PCL1.9.1配置问题(已解决)
windows10 VS2017 下PCL1.9.1配置问题(已解决) 第一次用PCL这个库,碰到许多的问题。把一些问题记录在这里,这样有同样的人遇到也可以解决。 配置 基本的配置我就不说了,大家可以参考下这篇博客。我觉得已经说的很详细了。 尤其是建议大家弄一个属性表,这样之后就不需要在配置了。 问题 在我参照这篇博客配置完成之后遇到了好几个问题。 E2512功能测试宏的参数必须是简单表示符 VS...
VS中报错 “ Error:未定义标识符 cvRodrigues2“
----------   这两天在调试opencv的时候,要将从matlab中获取到的摄像机标定好的参数导入到opencv中,并且对Rotation这个3*1向量通过“罗德里格斯变换”转化成opencv中可以使用的3*3的矩阵。但是在调用这个cvRodrigues2()函数时候,却一直报错,我没有截图,就用文字复述了,报错是:Error:未定义标识符cvRodrigues2()。   /
c语言 编译原理 分词
c语言 编译原理 分词 定义Token表示右部的值。 检查语义错误: (标识符声明、定义和使用) 没有声明;重复声明;类型不相容 符号表 (标识符名,地址,类型) 过程:读入Token 遇到标识符声明时,检查是否已声明,是则报错,否则构造标识符的符号表; 遇到标识符定义和使用时,检查是否声明。 将变量的Token改为($id,entry)形式,entry表示标识符在符号表中的地址。
C++ 标识符
C++的标识符(identifier)由字母、数字和下画线组成,其中必须以字母或下画线开头。标识符的长度没有限制,但是对大小写字母敏感: // 定义4个不同的int变量 int somename, someName, SomeName, SOMENAME; C++语言保留了一些名字供语言本身使用,这些名字不能被用作标识符。同时,C++也为标准库保留了一些名字。用户自定义的标识符中不能连续出现两
Qt“__func__”: 未声明的标识符
Qt“func”: 未声明的标识符flyfish环境:Win10 Qt 5.9.2 VS2013 QT VS TOOLS错误说明VS2013不支持该宏用 __FUNCTION__ 替代
typeof()未定义的内容,不会报错问题
typeof()一个未定义的变量不会报错;而是返回字符串的undefined; eg: typeof(shuo);   &quot;undefined&quot; typeof(null);           &quot;object&quot;
报错"必须声明变量"
Sub BindDataGrid()rn Me.SqlConnection1.ConnectionString = ConfigurationSettings.AppSettings("SqlConnectionString")rn Me.cmdgetbyclass.Parameters.Add("@class", ddlclass.SelectedItem.Text)rn Me.cmdgetbyclass.CommandText = "select 班级,课程,考试日期,教室名,开始时间,结束时间,监考教师1,监考教师2,监考教师3,监考教师4 from result1 where 班级=@class"rn Dim ds As DataSet = New DataSetrn Dim dst As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(Me.cmdgetbyclass.CommandText, Me.SqlConnection1)rn dst.Fill(ds, "class")rn DataGrid1.DataSource = dsrn DataGrid1.DataBind()rnEnd Subrnrn运行后报错为"必须声明变量 '@class'",rn我不是已经Me.cmdgetbyclass.Parameters.Add("@class", ddlclass.SelectedItem.Text)了吗?rnddlclass是一个dropdownlist.rn大家帮我看看是什么问题.rn
报错:必须声明变量
--2.将文件保存到数据库中rn declare @srv varchar(255),@db sysname,@tb sysname,@col sysnamern select @srv=@@servername --服务器名rn ,@db=db_name() --数据库名rn ,@tb='tb' --表名rn ,@col='img' --列名rn sp_textcopy @srv,'sa','sa的密码',@db,@tb,@col,'c:\test.jpg','where id=1','I' --保存到id=1的记录中,注意条件是:id=1rn sp_textcopy @srv,'sa','sa的密码',@db,@tb,@col,'c:\test.doc','where id=2','I' --保存到id=2的记录中,注意条件是:id=2rnrnrnrn其中“select @srv=@@servername --服务器名”我的服务器名字是 ioioui 我直接将servername 替换成ioiouirn程序会报错rnrn“消息 137,级别 15,状态 2,第 2 行rn必须声明变量 '@@ioioui'。”rnrn请问这个应该怎么修改 rnrn
在工程.h 文件了定义了变量,依然在.cpp文件里报 未声明的变量,无法识别的标识符错误
实际应用中总会遇到各种错误,比如我在.h文件里定义了一个结构体,并且.cpp文件包含了该头文件,结果在头文件里使用,却无法识别该类型。百思不得其解,后来才发现,原理是这样子的。     1, 我头文件里定义了一个类,类中包含了很多成员变量和成员函数。 源文件里是这些成员函数的实现,成员函数的实现,一般是这样子写的:    返回值类型:MultiBandBlender(定义的类名)::(函数名
Oracle 存储过程 \ 游标简单定义和使用
-- Created on 2018/10/12 by 32580 declare -- 定义变量 变量赋值方式为: 变量名 := 值 i INTEGER ; sqls varchar2(500); user_id varchar2(36); log_id varchar2(36); cdate date; -- 本次创建时间 fdate date; -- ...
noexcept异常说明及其使用
noexcept异常说明
VS2015中cout、cin未声明的标识符错误的处理
如下,如果使用老的输入输出流进行编译时就会发现报错 示例代码 #include "stdafx.h" #include int main(int argc,char* argv[]) { int a, b, sum; cout << "Please input a:" << endl; cin >> a; cout << "Please input b:" << endl; ci