这是我的功能:
FUNCTION GET(V_IN IN NUMBER) RETURN VARCHAR2 AS
V_OUT VARCHAR2(1000);
BEGIN
function body
END;
Run Code Online (Sandbox Code Playgroud)
当我右键单击该函数并单击测试时,我得到以下信息:
begin
-- Call the function
:result := pkg.get(V_IN => :V_IN);
end;
Run Code Online (Sandbox Code Playgroud)
如何替换该变量 V_IN 的值?我需要测试一个数字,比如 940。
当我尝试代码时:
declare
r varchar2(2000);
begin
-- Call the function
r := pkg.get(940);
end;
Run Code Online (Sandbox Code Playgroud)
我收到错误:
ORA-01036: illegal variable name/number
Run Code Online (Sandbox Code Playgroud)
您能建议调用此函数的各种方法吗?
PS:使用的工具:PL/SQL Developer Allround Automations。版本8.0.1.1502
Oracle 数据库 11g 企业版
我需要创建test
没有数据的物化视图,然后我将创建一个脚本来第一次将数据插入到这个物化视图中。在此之后,我将每晚运行物化视图刷新以刷新视图。
由于我不是物化视图的专家,任何人都可以在这里帮助我。
目前我有脚本来创建物化视图,该视图运行 2 小时,处理 2000 万行。
create materialize view
create table employee (
employee_id number (5),
first_name varchar2(100),
last_name varchar2(100),
salary number (10),
department_id number(5),
hire_date date,
constraint pk_emp primary key (employee_id)
)
insert into employee (employee_id, last_name, salary )
values
(129, 'khaj', 19000),
(130, 'ravi', 20000);
Run Code Online (Sandbox Code Playgroud)
我有一个由 3 列组成的表:系统、模块和块。表被填充在一个接受系统、模块和块的过程中,然后它检查三重奏是否在表中:
select count(*) into any_rows_found from logs_table llt
where system=llt.system and module=llt.module and block=llt.block;
Run Code Online (Sandbox Code Playgroud)
如果表中已有包含这三个值的行,则不要将它们写入表中,如果没有,则将它们写入。问题是,如果表具有值 'system=a module=b block=c' 并且我查询值 'does the table has system=a module=d block=e' 它返回 yes,或者,准确地说,any_rows_found=1。仅当我发送表中没有其值之一的三重奏组时才显示值 1,例如:'system=g module=h and block=i'。我的查询有什么问题?
我有以下加入
SELECT
*
FROM
table1 t1
JOIN table2 t2 ON t2.col = t1.col
Run Code Online (Sandbox Code Playgroud)
下面的有什么区别?
SELECT /*+ FULL(t1) */
*
FROM
table1 t1
JOIN table2 t2 ON t2.col = t1.col
Run Code Online (Sandbox Code Playgroud)
SELECT /*+ FULL(t1) FULL(t2) */
*
FROM
table1 t1
JOIN table2 t2 ON t2.col = t1.col
Run Code Online (Sandbox Code Playgroud) 有没有办法将天数小时数月和分钟添加到时间戳中,我想将其值插入到变量中
我有想要添加到时间戳的分钟、小时、天和月的单独变量
时间戳格式是这样的“04-FEB-21 10.25.12.013000 AM”
我尝试使用 SELECT TO_TIMESTAMP(datecreated,'dd-mon-yyyy hh.mi.ss AM') + daysvar into duedate FROM dual; 但它返回错误 AM/AM 或 PM/PM required
daysvar 包含要添加到时间戳的天数
谢谢!
我有一个复杂的 Oracle 查询。
SELECT
r3.object_id
FROM
nc_references r
INNER JOIN nc_objects o ON r.object_id = o.object_id
AND o.object_class_id = 90000330 /* Work Item */
INNER JOIN nc_params p ON p.object_id = o.object_id
AND p.attr_id = 90100070 /* State */ AND p.list_value_id IN ( 90100071 /* Ready */, 90100072 /* Active */ )
INNER JOIN nc_po_actions poa ON poa.manual_task_id = o.object_id
INNER JOIN nc_po_tasks pot ON pot.task_id = poa.task_id
INNER JOIN nc_references r1 ON r1.object_id = pot.container_id
AND r1.attr_id = 9145923960313063683 …
Run Code Online (Sandbox Code Playgroud)