Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.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
Sql ORA-01756:带引号的字符串未正确终止_Sql_Oracle_Plsql - Fatal编程技术网

Sql ORA-01756:带引号的字符串未正确终止

Sql ORA-01756:带引号的字符串未正确终止,sql,oracle,plsql,Sql,Oracle,Plsql,将第6行改为 please let me know the issue with following script (sql,oracle 10g) 1 DECLARE @colname AS NVARCHAR(50) 2 DECLARE @tablename AS NVARCHAR(500) 3 DEClARE @query AS NVARCHAR(500) 4 SET @colname = 'select wk_units1 from cnt_sls_dm.fct_

将第6行改为

please let me know the issue with following script (sql,oracle 10g)

  1  DECLARE @colname AS NVARCHAR(50)
  2  DECLARE @tablename AS NVARCHAR(500)
  3  DEClARE @query AS NVARCHAR(500)
  4  SET @colname = 'select wk_units1 from cnt_sls_dm.fct_sales_summary'
  5  SET @tablename = 'SELECT tablename from dmi_user.fct_sales_meta'
  6  set @query='select '+@colname+' FROM '+@tablename+'
  7* EXECUTE sp_executesql @query
SQL> /
ERROR:
ORA-01756: quoted string not properly terminated

在您的示例中,第6行似乎不正确:

set @query='select '+@colname+' FROM '+@tablename

你用一个
来结束这一行。要么删除
+”
,要么用
where
语句完成请求…

此错误是自我描述的,您有一个未终止的引号

您正在尝试运行
Oracle
中的
sqlserver
代码。这行不通

您不能仅仅通过复制将
T-SQL
转换为
PL/SQL

我更正了语法,但很可能您需要做更多的工作

set @query='select '+@colname+' FROM '+@tablename+'

这看起来很像tSql而不是pl SQl,您可能希望使用| |来连接Oracle和varchar2中的字符串,而不是nvarchar以下是回答问题的正确方法。。。。。。。。 罚款。。。。。。。。。。 感谢所有帮助

-艾文

DECLARE
    colname NVARCHAR2(50);
    tname   NVARCHAR2(500);
    query   NVARCHAR2(500);
BEGIN
    SELECT  wk_units1
    INTO    colname
    FROM    cnt_sls_dm.fct_sales_summary;
    SELECT  tablename
    INTO    tname
    FROM    dmi_user.fct_sales_meta;
    query := 'SELECT ' || colname || ' FROM ' || tname;
END;

这不是一个t-SQL(MS SQL)查询吗?他实际上正在尝试在
Oracle
中运行
SQL Server
查询。您好,我遇到了以下错误,但如果我运行查询Sapertaley,他们会在第1行以一个记录错误的形式给出结果:ORA-01403:未找到数据ORA-06512:在第1行10@Quassnoi一大早就错过了:(
DECLARE
     type fct_sales_summary_cur is table of dmi_user.fct_sales_summary_cmp_1%rowtype index by binary_integer;
     cur_rec fct_sales_summary_cur;
            colname NVARCHAR2(50);
            tname   NVARCHAR2(500);
            query   VARCHAR2(500);
            cnt     number:=1;
    BEGIN
            loop
            SELECT  colname
            INTO    colname
            FROM    dmi_user.FCT_SALES_META
            where   sno=cnt;
            SELECT  tablename
            INTO    tname
            FROM    dmi_user.fct_sales_meta
            WHERE sno=cnt;
            --query:='select * from dmi_user.fct_sales_summary_cmp';
            query := 'SELECT '|| colname ||' FROM '||tname;
            -- dbms_output.put_line(colname);
            -- dbms_output.put_line(tname);
            --dbms_output.put_line(query);
            execute immediate query bulk collect into cur_rec;
            --dbms_output.put_line(cur_rec);
            dbms_output.put_line('------Table-Sno -----' || cnt);
            for i in cur_rec.first..cur_rec.last loop
            dbms_output.put_line(cur_rec(i).wk_units1);
            end loop;
            cnt:=cnt+1;
    exit when cnt=4;
    end loop;
    END;
/