select-存储过程中SELECT赋值报错什么原因?

问题描述

存储过程中SELECT赋值报错什么原因?
CREATE OR REPLACE PROCEDURE PROC_DICTABLE_TBYSFL(p_ANetUser VARCHAR)
IS
vc_DICTABLEID varchar2(36);
vc_DICTABLECOLID varchar2(36);
vc_DICCOL1 VARCHAR2(20);
vc_DICCOL2 VARCHAR2(20);
vc_DICCOL3 VARCHAR2(20);
vc_DICCOL4 VARCHAR2(20);
vc_DICCOL5 VARCHAR2(20);
vc_DICTABLENAME VARCHAR2(20);
vc_PUBLICSQL VARCHAR2(200); --提取公有数据条件
vc_AVALUE1 VARCHAR(50);
vc_AVALUE2 VARCHAR(50);
vc_BVALUE1 VARCHAR(50);
vc_BVALUE2 VARCHAR(50);
vc_SQL varchar(500);
int_num number;
--vc_SQL0 varchar(500);
--vc_SQL1 varchar(500);
--vc_SQL2 varchar(500);
--vc_SQL3 varchar(500);
type myCursor is ref Cursor;
cur myCursor;
begin
select A.DICTABLEIDA.DICTABLECOLIDA.DICCOL1A.DICCOL2A.DICCOL3A.DICCOL4A.DICCOL5B.DICTABLENAME AS DICTABLENAMEB.PUBLICSQL
into vc_DICTABLEIDvc_DICTABLECOLIDvc_DICCOL1vc_DICCOL2vc_DICCOL3vc_DICCOL4vc_DICCOL5vc_DICTABLENAMEvc_PUBLICSQL
from T_DIC_TABLE_COL A INNER JOIN T_DIC_TABLE B ON A.DICTABLEID=B.DICTABLEID WHERE A.DICTABLECOLID=55;

  if vc_DICCOL2 is not null then  OPEN cur for 'select A_VALUE_COL1A_VALUE_COL2B_VALUE_COLE1B_VALUE_COL2 FROM  T_DIC_TABLE_COL_VALUEMAP WHERE DICTABLECOLID=55 AND VALUEOK=0';  fetch cur into vc_AVALUE1vc_AVALUE2vc_BVALUE1vc_BVALUE2;  WHILE (cur % found) loop      select COUNT(*) INTO int_num FROM  || p_ANetUser || '.TBYSFL A WHERE ' ||  vc_PUBLICSQL || ' AND A.' || vc_DICCOL1 || 'A.' || vc_DICCOL2 || '=' || vc_BVALUE1 || vc_BVALUE2;      if int_num=0 then      vc_SQL :='update ' || p_ANetUser || '.TBYSFL A SET ' || vc_DICCOL1 || '=' || vc_BVALUE1 || '' || vc_DICCOL2 || '=' || vc_BVALUE2              || ' where ' || vc_PUBLICSQL || ' AND A.' || vc_DICCOL1 || 'A.' || vc_DICCOL2 || '=' || vc_BVALUE1 || vc_BVALUE2;      execute immediate vc_SQL;      commit;      end if;      fetch cur into vc_AVALUE1vc_AVALUE2vc_BVALUE1vc_BVALUE2;  END LOOP;  CLOSE cur;  end if;

END PROC_DICTABLE_TBYSFL;

解决方案

在存储过程中 给变量赋值

解决方案二:
哪位大神帮我看一下,报错在这句select COUNT(*) INTO int_num FROM || p_ANetUser || '.TBYSFL A WHERE ' || vc_PUBLICSQL || ' AND A.' || vc_DICCOL1 || 'A.' || vc_DICCOL2 || '=' || vc_BVALUE1 || vc_BVALUE2;
我想知道为什么上面也有一句SELECT赋值给变量,就没有报错。 报ORA-00903表名无效

解决方案三:
你可以把vc_SQL这个SQL输出出来看看到底是什么

时间: 2024-07-28 14:51:35

select-存储过程中SELECT赋值报错什么原因?的相关文章

char[]-关于c++中char[ ] 的赋值报错问题

问题描述 关于c++中char[ ] 的赋值报错问题 iemi = pThis->imei; 第一个imei是typedef struct ServerInfoData { char iemi[128]; }ServerInfoData; 第二个imei是在头文件中被定义的private 中的char[128]; 但是在编译的时候就报错 ./Core/ServerManager.cpp:145:32: error: invalid array assignment 这是怎么回事啊 解决方案 楼主

android中sqlite一直报错

问题描述 android中sqlite一直报错 在应用中用到sqlite,创建了一些表,代码如下: db.execSQL("CREATE TABLE IF NOT EXISTS " + GAMES_HISTORY_TABLE+ " (" + GAME_KEY + " INTEGER PRIMARY KEY AUTOINCREMENT, " + RIGHT_DRILLS + "INTEGER NOT NULL, " + NUM_

weblogic连接池-Java调用Oracle存储过程传入数组参数报错

问题描述 Java调用Oracle存储过程传入数组参数报错 weblogic连接池 JNDI提供的链接保存 Oracle数组 报错 oracle.jdbc.driver.T4CConnection cannot be cast to oracle.jdbc.OracleConnection oracle.jdbc.driver.T4CConnection cannot be cast to oracle.jdbc.OracleConnection 大家好,我在用weblogic连接池 JNDI

c语言-把数组中的元素 循环的作为函数中的参数 报错!

问题描述 把数组中的元素 循环的作为函数中的参数 报错! 把数组中的元素 循环的作为函数中的参数 怎么会报错 麻烦前辈帮忙看看 #include<stdio.h>int ShowNumber();int main (){ int number[10]; int i ; //循环变量 //随便为number数组赋值 for(i=0;i<10;i++)// i=0 1 2 3 4 5 6 7 8 9 { number[i]=i; } for(i=0;i<10;i++) { ShowNu

arcgis-ae+c#中返回距离函数报错

问题描述 ae+c#中返回距离函数报错 IFeatureLayer aFL = axMapControl1.Map.get_Layer(0) as IFeatureLayer; IFeatureLayer bFL = axMapControl1.Map.get_Layer(1) as IFeatureLayer; IFeatureClass aFClass = aFL.FeatureClass; IFeatureCursor aFC = aFClass.Search(null, true); I

android中应用编译报错

问题描述 android中应用编译报错 一个带下拉列表的应用,在编译的时候报错: The constructor ArrayAdapter(LayoutNext, int, String[]) is undefined 不知道应该怎么解决? 我的实现代码: public class LayoutNext extends Fragment implements OnClickListener,OnItemSelectedListener{ TimePicker timepicker; privat

post请求-Post请求方式在地址栏中敲回车报错

问题描述 Post请求方式在地址栏中敲回车报错 Spring mvc中表单以post方式提交后将数据带到新的页面,但是在浏览器地址栏中敲回车的时候报错,地址栏回车属于get方式,请问这种情况如何避 解决方案 不指定请求访问方式不就可以了么 解决方案二: post 方式,不是get,给你个post工具 谷歌浏览器一样post测试 postman 解决方案三: post方式只能设计一个表单,一个提交按钮,才可以.浏览器输入地址,是get 解决方案四: 不知道题主的困惑在哪个地方,是想要调试post的

myeclipse中启动tomcat报错

问题描述 myeclipse中启动tomcat报错 在myeclipse中启动tomcat时报错,不知道怎么解决,请网友指点:报错信息如下Deployment is out of date due to changes in the underlying project contents.You'll need to 'Redeploy' the project to update the deployed archive; 警告提示是:构建路径指定执行环境 JavaSE-1.6.工作空间中没有

ndk ndroid tudio jni-AndroidStudio中开发ndk报错,求助!!!

问题描述 AndroidStudio中开发ndk报错,求助!!! D:workspacesAndroidProjectsGISpeechappsrcmainjniHTKLibexcpt.h:20:21: fatal error: crtdefs.h: No such file or directory #include <crtdefs.h> as 的项目中使用ndk 开发,其中有些 c 文件中引用了一些 系统平台下的 h 文件,在 vs2010 中可以调通,但是加入到 jni 中就报错,请问