我有一个要求,其中我有一个表列,其中包含一个表达式,该表达式应该作为where子句附加到过程中的select stmt。
该表达式引用了过程中可用的变量。
Declare
Query varchar2(4000);
Expression varchar2(4000);
Value varchar2(10):= 'abc';
Valuex varchar2 := 'def';
... n number of variables declared
Cursor c1 is select expression from tableabc where some c
我正在处理一个pl-sql脚本,其中有大约10个TO_CHAR转换。
其中一个是抛出一个
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
异常。
目前,我正在使用这段代码记录消息
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.put_line('Exception message is '||SQLERRM(sqlcode));
ROLLBACK;
我想添加(主要用于调试目的)抛出异常的行,以便接收格式为
ORA-0650
我正在研究一组PL/Python存储过程。我使用的是PostgreSQL 9.3 (从apt.postgresql.org安装)和Python2.7解释器;运行在Ubuntu13.04上。
该错误发生在一个大型操作的中间(创建一个物化视图,该视图使用的数据来自超过30万行的源表,并使用PL/Python存储过程计算某些字段)。
我得到的错误输出是:
ERROR: could not convert SPI error to Python exception
CONTEXT: PL/Python function "get_first_level_parent"
******
简单地使用下面的命令查询正在运行的作业
select * from dba_jobs_running;
在我的sqldevelopers SQL控制台中执行时运行良好。
但是,当过程中有完全相同的语句时,它就不起作用了。编译失败,出现
PL/SQL: ORA-00942: table or view does not exist
有什么想法吗?有没有需要考虑的范围之类的东西?
任何建议都是非常感谢的,提前感谢:)
在分配日期时间格式时,我在实现PL/SQL过程时遇到了问题。我指的是我的MySQL存储过程,我是Oracle /SQL的新手。
下面是我从MySQL过程中进行的PL/SQL转换
CREATE OR REPLACE
PROCEDURE "DateTimeSP" (xType IN VARCHAR2, xResult OUT VARCHAR2)
AS
BEGIN
CASE
WHEN xType = 'TIME' THEN
SELECT CURRENT_TIMESTAMP() FROM dual INTO xResult;
我试图根据这个中提供的指令进行插入。
我可以运行这个例子
CREATE OR REPLACE PROCEDURE test_proc (p_array_size IN PLS_INTEGER DEFAULT 100)
IS
TYPE ARRAY IS TABLE OF all_objects%ROWTYPE;
l_data ARRAY;
CURSOR c IS SELECT * FROM all_objects;
BEGIN
OPEN c;
LOOP
FETCH c BULK COLLECT INTO l_data LIMIT p_array_size;
我正在尝试创建一个表,然后在pl/sql中的同一过程中插入一些值。我尝试运行以下查询,但没有成功:
create or replace Procedure insertval8(id_no in number,e_name in char)
is
begin
execute immediate 'create table edu2(id number(20), name char(12))';
insert into edu2 values(&id_no,&e_name);
end;
显示
LINE/COL ERROR
-------- --------
我不知道我的过程中的错误在哪里。
我尝试在不同的SQL工作表,不同的连接中使用它。
CREATE OR REPLACE PROCEDURE SERVICEINVOICE(v_name IN VARCHAR2)
IS
BEGIN
SELECT * FROM S8.SERVWORK WHERE SERVINVNO = '&v_name';
END;
/
错误(4,1):PL/ SQL :忽略错误(4,18):PL/SQL: ORA-00942: table或view不存在
如何使用这些过程参数更新数据。
1. p_id_book IN NUMBER;
2. p_column_name VARCHAR2;
3. p_value VARCAHR2;
如果我尝试像这样更新:
CREATE OR REPLACE PROCEDURE uptade_book(p_id_book IN NUMBER,
p_column varchar2, p_value varchar2)
AS
begin
UPDATE book SET p_column = p_value WHERE id_book = p_id_book;
END;
这些错误发生在:
我不熟悉PL/SQL。有人能解释一下为什么我不能做下面的事情吗?
BEGIN
IF TRUE THEN
CREATE INDEX TestIndex ON SomeTable (SomeColumn);
END IF;
END;
我会得到以下错误:
错误报告: ORA- 06550 :第3行,第5列: PLS-00103:遇到符号"CREATE“,因为需要以下内容之一: begin case declare exit for goto if loop mod null杂注raise return select update while with << clo