我正在尝试执行此查询:
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很大的。任何人都可以提供任何解决方案如何执行此查询?
如果一个或多个迭代崩溃,我需要帮助来完成迭代回滚,如果成功,我需要提交所有其他迭代.如果崩溃,它将回滚整个事务.认为这可以通过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函数中传递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的分层语法等效的通用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.
如果我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表上创建索引并且只指定列名和表名(基本上是默认索引)时,它是创建全局索引还是本地分区索引(即根据表分区对索引进行分区)?
有一个叫做的表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开发人员中遇到错误:
Run Code Online (Sandbox Code Playgroud)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 …
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中进行比较.
我想问一下我是否可以在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包装,那么我可以使用哪种替代方案?
那么有可能获得当前的代码行吗?
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 ×10
plsql ×6
sql ×5
clob ×1
database ×1
date ×1
hibernate ×1
indexing ×1
mysql ×1
oracle11g ×1
partitioning ×1
spring ×1
sqlplus ×1
transactions ×1
validation ×1