Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.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
Oracle PL/SQL:数字或值错误:字符到数字转换错误_Oracle - Fatal编程技术网

Oracle PL/SQL:数字或值错误:字符到数字转换错误

Oracle PL/SQL:数字或值错误:字符到数字转换错误,oracle,Oracle,我有以下pl/sql块 我得到PL/SQL错误:数字或值错误:字符到数字转换错误 但我没有发现任何这样的转换问题 请帮忙 oraclepl/Sql块 declare Menu_Item_ID integer :=80; SelectedColumns varchar2(800):=''; IsBlank Number(2); V_Column_Name varchar2(150); V_Column_Name_Value Varchar2(200); V_

我有以下pl/sql块 我得到PL/SQL错误:数字或值错误:字符到数字转换错误 但我没有发现任何这样的转换问题 请帮忙

oraclepl/Sql块

declare
Menu_Item_ID  integer :=80;
SelectedColumns  varchar2(800):='';


    IsBlank Number(2);
    V_Column_Name varchar2(150);
    V_Column_Name_Value Varchar2(200);
    V_Url_Column_Name varchar2(100);
SelectedColumnsTemp varchar(8000):=SelectedColumns;
cursor c1 is
Select  Column_Name,Column_Name_Value,Url_Column_Name
    From    COM_MST_REPORT_DEFAULT_COLUMN
    Where   Link_ID = Menu_Item_ID;
Begin

    if SelectedColumnsTemp = ''
  then
            IsBlank := 1;
    Else
            IsBlank := 0;
    End if;
FOR DefaultColumns in c1
LOOP
            V_Column_Name := '';
            V_Column_Name_Value := '';
            V_Url_Column_Name := '';    
    V_Column_Name := '"' + TO_CHAR(DefaultColumns.Column_Name) + '"';
    V_Column_Name_Value := TO_CHAR(DefaultColumns.Column_Name_Value);
    V_Url_Column_Name := TO_CHAR(DefaultColumns.Url_Column_Name);
            if(nvl(V_Url_Column_Name,'') <> '')
                then
                    V_Column_Name_Value  := V_Url_Column_Name  + ' as ' + V_Column_Name; 
            Else
                    V_Column_Name_Value :=  V_Column_Name_Value  + ' as ' + V_Column_Name; 
                End if;
            if IsBlank = 0
                then
                    SelectedColumnsTemp := replace(SelectedColumnsTemp,V_Column_Name,V_Column_Name_Value);
            Else
                            SelectedColumnsTemp := SelectedColumnsTemp + V_Column_Name_Value +  ',';
                End if;

END LOOP;
    DBMS_OUTPUT.PUT_LINE(SelectedColumnsTemp);
End;
声明
菜单项\u ID整数:=80;
所选列varchar2(800):='';
是空白号码(2);
V_列名称varchar2(150);
V_列_名称_值Varchar2(200);
V_Url_Column_Name varchar2(100);
SelectedColumnsTemp varchar(8000):=SelectedColumns;
光标c1为
选择列名称、列名称、值、Url列名称
从COM\u MST\u REPORT\u DEFAULT\u列
其中Link\u ID=菜单项\u ID;
开始
如果选择了ColumnStemp=“”
然后
IsBlank:=1;
其他的
IsBlank:=0;
如果结束;
对于c1中的DefaultColumns
环
V_列名称:='';
V_列名称_值:='';
V_Url_列名称:='';
V_Column_Name:=''“+到字符(DefaultColumns.Column_Name)+'”;
V_Column_Name_Value:=TO_CHAR(DefaultColumns.Column_Name_Value);
V_Url_Column_Name:=TO_CHAR(DefaultColumns.Url_Column_Name);
如果(nvl(V_Url_列名称“”)“”)
然后
V_Column_Name_Value:=V_Url_Column_Name+'as'+V_Column_Name;
其他的
V_Column_Name_Value:=V_Column_Name_Value+'as'+V_Column_Name;
如果结束;
如果IsBlank=0
然后
SelectedColumnsTemp:=replace(SelectedColumnsTemp,V\u Column\u Name,V\u Column\u Name\u Value);
其他的
SelectedColumnsTemp:=SelectedColumnsTemp+V_Column_Name_Value+',';
如果结束;
端环;
DBMS_OUTPUT.PUT_LINE(SelectedColumnsTemp);
结束;

在Oracle中,字符串由
|
连接(或鲜为人知的由
CONCAT()
)而不是
+

e、 g

而不是

V_Column_Name := '"' + TO_CHAR(DefaultColumns.Column_Name) + '"';

所有列和变量的类型是什么?可能是您试图在某个地方连接文本和数字吗?“在Oracle中,字符串由| |”连接-实际上应该是“在SQL中,字符串由| |连接”。这不是特定于Oracle的。SQL标准在近30年前定义了该操作符。
V_Column_Name := '"' + TO_CHAR(DefaultColumns.Column_Name) + '"';