小编Nic*_*nov的帖子

如何解决错误:ORA-01406提取的列值被截断了?

我正在尝试执行此查询:

select * 
  from gi_todo_isim 
 WHERE d_insercao >= '04-JUL-13' 
   AND d_insercao <= '25-JUL-13'
Run Code Online (Sandbox Code Playgroud)

但是,这我回来这个错误:

ORA-01406 fetched column value was truncated
Run Code Online (Sandbox Code Playgroud)

如果我尝试计算存在多少列:

select count(*) 
  from gi_todo_isim 
 WHERE d_insercao >= '04-JUL-13' 
   AND d_insercao <= '25-JUL-13'
Run Code Online (Sandbox Code Playgroud)

答案是1661597很大的。任何人都可以提供任何解决方案如何执行此查询?

sql database oracle plsql sql-navigator

3
推荐指数
1
解决办法
3万
查看次数

Oracle:回滚仅循环的崩溃迭代

如果一个或多个迭代崩溃,我需要帮助来完成迭代回滚,如果成功,我需要提交所有其他迭代.如果崩溃,它将回滚整个事务.认为这可以通过Savepoints来完成,但我对它们并不是很熟悉.这是我尝试实现的基本示例.

    DECLARE 
      ...
    BEGIN
      FOR i IN 1 .. 10
      LOOP
        BEGIN
          -- Some DML and stored procs with DML
          INSERT INTO a .. .;
          INSERT INTO b .. .;
          INSERT INTO a .. .;
          DELETE FROM a .. .;
          UPDATE INTO c .. .;
          m_package.some_proc_with_dml;
        EXCEPTION
          WHEN OTHERS THEN
            merror   := merror + || ', ' || + sqlerrm;
            miserror := TRUE;
        END;
      END LOOP;

      COMMIT;

      IF miserror THEN
        raise_application_error(-20000, merror);
      END IF;

    END;
Run Code Online (Sandbox Code Playgroud)

提前致谢.

oracle plsql transactions

3
推荐指数
1
解决办法
3720
查看次数

无法在Oracle函数中传递CLOB

我试图在oracle函数中传递CLOB作为输入参数.该函数已成功创建,但当我尝试传递一个冗长的字符串时,它会给出

ora-01704字符串文字太长了

错误.

以下是我的功能:

CREATE OR REPLACE FUNCTION mySchema.TESTFUNCTION(myData IN CLOB)
  RETURN INT
AS
BEGIN
  DBMS_OUTPUT.PUT_LINE(myData);
  RETURN 1;
END;
Run Code Online (Sandbox Code Playgroud)

当我尝试通过传递超过5000个字符的冗长字符串来调用此函数时,它会给出错误.

请有人帮忙吗

oracle plsql clob

3
推荐指数
1
解决办法
6682
查看次数

什么是标准的SQL查询,相当于Oracle的'start with ... connect by',而不是DBMS特定的

我想知道是否存在与Oracle的分层语法等效的通用SQL start with...connect by.我需要一些可以在任何数据库上使用的东西.这是我的意思(使用Oracle的示例EMP表):

SELECT empno , ename , job , mgr ,hiredate ,level 
FROM emp 
START WITH mgr IS NULL 
CONNECT BY PRIOR empno = mgr. 
Run Code Online (Sandbox Code Playgroud)

递归公用表表达式适用于许多数据库实现,但不适用于MySQL.

mysql sql oracle hierarchical-query

2
推荐指数
1
解决办法
2122
查看次数

PL/SQL检查日期有效

如果我DDMM在PL/SQL中有一个日期格式,我想验证它.这样做的正确方法是什么?

DD是一天,MM是飞蛾.

For an example:
0208 - is a valid date
3209 - is not a valid date
0113 - is not a valid date.
Run Code Online (Sandbox Code Playgroud)

oracle validation plsql date

2
推荐指数
1
解决办法
2万
查看次数

默认的oracle索引是全局的还是本地的

当我在oracle表上创建索引并且只指定列名和表名(基本上是默认索引)时,它是创建全局索引还是本地分区索引(即根据表分区对索引进行分区)?

oracle indexing partitioning

2
推荐指数
1
解决办法
3002
查看次数

循环使用表A并使用PL/SQL更新表B列C.

有一个叫做的表TableA和另一个叫做的表TableB

我需要复制的列值ValueC表中TableB的列ValueD在表中TableA.两个表共享一个公共列:Table_id

我试过用:

DECLARE 
   CURSOR c_App
   IS
     SELECT *
       from TableA
BEGIN 
   for i in c_App
   LOOP
     select ValueD from TableB where Table_id = c_App.Table_id;
   END LOOP;
   update TableA set ValueC = ValueD  where Table_id = c_App.Table_id
END;
Run Code Online (Sandbox Code Playgroud)

但是,我在SQL开发人员中遇到错误:

PLS-00103: Encountered the symbol "END" when expecting one of the following:

   begin function package pragma procedure subtype type use
   <an identifier> <a double-quoted delimited-identifier> form
   current cursor
06550. 00000 …
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql

2
推荐指数
1
解决办法
2171
查看次数

使用oracle中的时间戳比较两个日期

select * 
  from  table1 rcd, 
        table2 company 
 WHERE to_timestamp(to_char(rcd.date), 'YYYY-MM-DD HH:MI:SS') >
       to_timestamp(to_char(company.date), 'YYYY-MM-DD HH:MI:SS') 
Run Code Online (Sandbox Code Playgroud)

我想使用to_timestamporacle中的timestamp()来比较我的两个日期字段,并且我使用上面的查询它没有给出正确的结果(给出不大于来自company.date的记录).

任何想法如何使用to_timestamp在oracle中进行比较.

sql oracle spring hibernate

2
推荐指数
1
解决办法
3万
查看次数

我可以在Oracle中使用UTILS吗?

我想问一下我是否可以在Oracle中使用以下内容:

UTILS.CONVERT_TO_VARCHAR2
Run Code Online (Sandbox Code Playgroud)

例如:

SELECT insertData,
       UTILS.CONVERT_TO_VARCHAR2(insertData,10,p_style=>104) insert_short  
  FROM students
Run Code Online (Sandbox Code Playgroud)

如果不能使用UTILS包装,那么我可以使用哪种替代方案?

sql oracle sqlplus oracle11g oracle-sqldeveloper

2
推荐指数
1
解决办法
2653
查看次数

Oracle pl/sql代码行(行)到变量

那么有可能获得当前的代码行吗?

1,2,3,4 v_variable :=(get_line or something???) and in variable are value 4?
5,6,7,8,9 v_variable :=(get_line or something???) and in variable are value 9?
Run Code Online (Sandbox Code Playgroud)

我只是想找到最简单的方法来捕获错误谢谢.

1,2,3,4, code lines...
Run Code Online (Sandbox Code Playgroud)

oracle plsql

2
推荐指数
1
解决办法
1658
查看次数