我正在尝试编写一个文本紧跟在替代变量后面的查询。我知道在SQL Plus中可以做到这一点,但我不确定如果不使用动态SQL,在PL/SQL Developer中是否可以做到这一点。作为一个简单的例子,我用测试数据创建了这个表: CREATE TABLE TEST_TABLE AS
SELECT 1 AS COL_1 FROM DUAL
UNION
SELECT 1.1 AS COL_1 FROM DUAL
UNION
SELECT 11 AS COL_1 FROM DUAL 据我所知,替代变量的末尾由句点(.)表示。然而,这似乎只有在SQL Plus中才能正常工作。 SQL> SELEC
在Oracle数据库10g中,是否可以在包或过程之外创建关联数组类型?我希望能够这样做,这样我就可以在另一个类型中引用这个关联数组类型。例如:
create type my_type_map is table of varchar2(10) index by varchar2(10);
create type my_other_type as object (
id number(15),
member procedure initialize(p_my_type_map my_type_map)
) not instantiable not final;
我得到的错误
在过去的10天里,我使用甲骨文的顶级语言学习PL/SQL。突然,我编写了一个代码来接收用户的一些输入。`
declare
a number;
begin
a := &x;
dbms_output.put_line(a*6);
end;
它抛出了一些错误。>>ORA-06550
我希望从它中获取用户的输入。因为Pl/sql并不是很有名,所以有很多关于它的东西。
我正在为学校执行一个非常简单的PL/SQL程序。这很简单,但我想我遗漏了一个概念。我将展示我一直在做的事情,而不仅仅是要求一个简单的答案。我想要理解DBMS_OUTPUT.PUT_LINE的概念以及绑定变量,我已经声明了这些变量来计算矩形棱镜的体积,或者说是池。我只是没有正确地向用户声明它。我很难找到输出给用户的正确信息,我正在学习更多关于输入和put_line的知识。
所以要计算v=lwh。我已经使用PL/ put_line中内置的dbms_output函数声明了这些变量,并将其放入SQL中。我应用了这些变量的计算。我正在使用dbms put line语句,以显示显示可变维度的计算和压缩语句
我是PL / SQL的新手。我应该在下面的代码块中添加什么来执行它?如果我使用值单独运行查询,当我替换datefrom和dateto值时,我可以创建但得到编译错误。请求帮助。
DECLARE @datefrom DATE;
DECLARE @dateto DATE;
SET @datefrom = '14-Mar-14';
SET @dateto = '15-Mar-14';
select a.* from (select count (distinct CODE) CODES from H_ABC_TABLES WHERE hist_dt between
我尝试在运行时在oracle表中插入值。当我尝试执行下面的代码时,出现以下错误:
Error report:
ORA-06550: line 8, column 60:
PL/SQL: ORA-00984: column not allowed here
PLSQL块:
declare
i integer;
begin
for i in 1..20
loop
if mod(i,2)<>0 then
insert into Departments (DEPT_NUMBER, DEPT_NAME) values(i, &dept_name);
end if;
end loop;
我有一张桌子:
CREATE TABLE TEST
(
DEP_CODIGO_UNIDAD NUMBER(4),
XPTO NUMBER(4)
)
我想将其作为pl上的一个函数来完成:
select * from TEST where DEP_CODE in (4102, 3201, 8540,...,2010)
此操作使用SQL,但作为PL函数,我将接收ora-01722无效编号。
我的功能如下:
FUNCTION REL_TEST(vCeco IN VARCHAR2,
这个街区有什么问题吗?请帮我解决这个问题。将根据where子句只选择一行。
表分类
Name Type Nullable Default Comments
---- ------------- -------- ------- --------
ID NUMBER(10)
NAME VARCHAR2(100) Y
PL/SQL :
declare
type clazzes_row_type is record
(clazz_rownum number,
clazz_id clazzes.id
我注意到,当使用PL/SQL Developer调试代码时,调试器需要跨出某些代码。最初的猜测是归咎于这一行代码,但进一步的调查没有发现任何可疑之处。只是存储过程中的简单操作或对系统函数的调用。显然没有理由吊死。
查询系统视图使我发现调试器会话的当前SQL_CODE是:
declare ret binary_integer; begin ret := PBSDE.DEBUG_LOOP; end;
过了一段时间,PL/SQL Developer抛出一个错误:
ORA-06502: PL/SQL: numeric or value error: character to number conver
我使用简单的标准SQL查询从表中获取记录计数,并希望将其存储在一个变量中,以便以后可以使用它。
原因是我的表包含一个巨大的数据,我不想再次使用下面的查询。
select count(1) from mytable;
另外,我不想使用PL/SQL,只想查找SQL语句。
我尝试使用定义关键字,但无法在定义变量中设置计数。
请建议我如何将它存储在变量中。
例子:
DEFINE some_variable;
SELECT COUNT(1) into some_variable,sysdate as CLEANUP_START FROM TABLE_TEMP;
--offcourse this i
假设我们有以下字符串:
$6
$7
You have received the grade of $3 in the subject $1 ($10) in the semester $2 ($11).
Grade date: $4
Entered: $5
我需要弄清楚如何动态地、恰当地替换这些变量。假设我们有可折叠的PL/SQL伪代码:
for i in 1..X loop
l_str := regexp_replace(l_str, '\$'||to_char(i), l_replace(i));
end loop;
但是当涉及到第一次迭代时-- $1、$1
declare
x number;
begin
for i in 1 .. 5
loop
x:=&no;
dbms_output.put_line(x);
end loop;
end;
这里我想做的是在pl sql块中从用户那里获取五次输入并打印它,但是它只打印一个值,这个值是在编译时获取的,有什么解决方案吗?
Enter value for no: 1
old 7: x:=&no;
new 7: x:=1;
1
1
1
1
1
我有以下pl/sql块:
BEGIN
FOR I IN 1 .. 5
LOOP
INSERT INTO TEST_TABLE VALUES('&slno',SYSDATE);
END LOOP;
END;
当我执行上面的代码块时,它只接受一个输入。但它应该总共需要5个输入。我的代码中缺少什么?有谁能帮帮我吗?
或者我应该?
(标题的灵感来源于加里·迈尔斯在中的评论)
考虑以下变量:
declare
-- database table column interfacing variable
v_a tablex.a%type; -- tablex.a is varchar2
-- PL/SQL only variable
v_b varchar2(32767); -- is this a poor convention ?
begin
select a into v_a from tablex where id = 1;
v_b := 'Some arbitrary s