尝试创建查询游标时,如下所示:
DECLARE CURSOR Query1
IS
SELECT * FROM RACE
WHERE Race_Time='22-SEP-14 12.00.00.000000000';
BEGIN
OPEN Query1;
END;
Run Code Online (Sandbox Code Playgroud)
我收到以下错误。匿名阻止已完成。有谁知道如何解决这一问题?我尝试将“ SET SERVEROUTPUT ON”设置为“ 在声明之前,但这似乎无法解决错误。提前致谢!
我已经搜索了这个,但发现没有什么比回答我的问题更有意义了.我的疑问就像我们知道varchar2数据类型的最大大小是32767字节所以在类似的行上分配了多少空间来存储日期数据类型的值.它被视为varchar2数据类型吗?这样大小将取决于字符数?或者它是不同的东西.
谢谢
我试图在其中一个字段为空或使用以下代码为null时在插入或更新触发器之前抛出异常:
if :new.reactietekst = null or :new.reactietekst = '' then
raise invalid_text;
end if;
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用reactietekst字段的空值或空值进行插入时,代码似乎被忽略.我的触发器中的其他异常工作正常.
测试插页:
insert into Reactie values (5,'Jan Janssen',to_date('21-12-2011','dd-mm-yyyy'),'89.98.10.12',null, 'NIEUW', 1);
insert into Reactie values (5,'Jan Janssen',to_date('21-12-2011','dd-mm-yyyy'),'89.98.10.12','', 'NIEUW', 1);
Run Code Online (Sandbox Code Playgroud)
完整触发代码:
create or replace trigger check_reactie
before update or insert
on REACTIE
for each row
declare
invalid_capitals EXCEPTION;
invalid_ip exception;
invalid_text exception;
begin
if isdutchip(:new.ipadres) = false then
raise invalid_ip;
end if;
if :new.reactietekst = null or :new.reactietekst = '' then
raise invalid_text;
end if;
if :new.naam != …Run Code Online (Sandbox Code Playgroud) 我详细阐述了这段小代码,开始了我的宝贝步骤.连接很好.简单的OdbcDataReader选择工作正常.但我无法测试任何PL/SQL函数.它是如何工作的 ?我是否需要额外安装或者我做错了什么?
using System;
using System.Data.Odbc;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string connectionString = "dsn=TEST;uid=read;pwd=___";
OdbcConnection con = new OdbcConnection(connectionString);
con.Open();
try
{
OdbcCommand cmd = new OdbcCommand("begin end;", con);
int result = cmd.ExecuteNonQuery();
cmd.Dispose();
}
catch (Exception exception)
{
Console.WriteLine(exception);
}
con.Close();
con.Dispose();
Console.ReadKey();
}
}
}
Run Code Online (Sandbox Code Playgroud)
PL/SQL程序显然是:
begin
end;
Run Code Online (Sandbox Code Playgroud)
错误消息如下:
System.Data.Odbc.OdbcException (0x80131937): ERROR [HY000] [Oracle][ODBC][Ora]OR
A-06550: line 1, column 7:
PLS-00103: Encountered the symbol "END" when expecting one of …Run Code Online (Sandbox Code Playgroud) 我有一个名字清单。
约翰,山姆,彼得,杰克
我想查询与上面的每个过滤器相同的SQL。每个查询都会给我一个唯一的员工ID,我想用它删除其他一些记录。
select emp_id from employee where emp_name like '%john%';
Run Code Online (Sandbox Code Playgroud)
假设第一个查询的ID为1001。因此删除查询如下。
delete from account_details where emp_id = 1001;
delete from hr_details where emp_id = 1001;
delete from pay_role_details where emp_id = 1001;
Run Code Online (Sandbox Code Playgroud)
对于员工列表,我必须重复此操作。伪代码如下所示。
var emp_list = ['john', 'jack', 'kate', 'peter', 'sam',...]
for each :employee_name in emp_list
select emp_id as :var_emp_id from employee where emp_name like '%:employee_name%';
delete from account_details where emp_id = :var_emp_id;
delete from hr_details where emp_id = :var_emp_id;
delete from pay_role_details where emp_id = :var_emp_id;
end loop …Run Code Online (Sandbox Code Playgroud) 我想在Oracle PL/SQL中知道,
=可以用于布尔比较,它也可以用于赋值吗?
虽然是:=用于变量初始化,它也可以用于赋值吗?
那么,那么使用2有什么区别?
谢谢!
我是一个新的PL/SQL用户.我尝试创建一个过程并运行它:
create or replace procedure addp1(i in number) is
begin
insert into t3 values (i,'xxxx');
end addp1;
begin
addp1(99);
end;
Run Code Online (Sandbox Code Playgroud)
但我进入error: Error(7,1): PLS-00103: Encountered the symbol "BEGIN" 了我的日志文件.任何人都可以帮我解决这个问题.谢谢
我试图获取my_table的所有列名,并希望使用my_fn将其作为字符串.例如,假设my_table包含名为"year","month","day"的列.使用all_tab_cols表获取此列名,并将其存储到tmp集合中.使用for循环,我希望使用my_fn将这些列名称设置为"月,年,日".目前,我收到以下错误.
错误日志 - 这是我作为错误得到的
SQL Error: ORA-22905: cannot access rows from a non-nested table item
22905. 00000 - "cannot access rows from a non-nested table item"
*Cause: attempt to access rows of an item whose type is not known at
parse time or that is not of a nested table type
*Action: use CAST to cast the item to a …Run Code Online (Sandbox Code Playgroud)
嗨,大家好.
我需要你帮助解决这个问题.
我需要在我的一个表中创建一堆序列号,为此我想使用存储过程.所以我想将FirstSN和LastSN作为参数传递给SP,并将N条记录插入到我的表中.序列号由前缀和增量部分组成.例如,我将SN0001作为FirstSN发送,SN0100作为LastSN发送,它应插入以下内容:
SN0001
SN0002
SN0003
...
SN0099
SN0100
如何在不使用循环的情况下执行此操作?
Ps我正在使用oracle 11.2.0
我有下面的代码
declare
v_rst varchar2(200);
cursor c_cur is
select sysdate from dual;
begin
open c_cur;
fetch c_cur
into v_rst;
close c_cur;
dbms_output.put_line(v_rst);
end;
Run Code Online (Sandbox Code Playgroud)
它的输出结果是"23-DEC-14"
当我在查询下面运行时,结果是"12/23/2014 11:21:06 AM"
select sysdate from dual;
Run Code Online (Sandbox Code Playgroud)
当我运行第一个代码时,我不知道为什么TIME部分消失了.
任何人都可以解释会非常感激.