标签: plsql

在oracle SQL中完成匿名块

尝试创建查询游标时,如下所示:

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”设置为“ 在声明之前,但这似乎无法解决错误。提前致谢!

oracle plsql

0
推荐指数
1
解决办法
3万
查看次数

oracle中以日期为单位分配的最大存储空间

我已经搜索了这个,但发现没有什么比回答我的问题更有意义了.我的疑问就像我们知道varchar2数据类型的最大大小是32767字节所以在类似的行上分配了多少空间来存储日期数据类型的值.它被视为varchar2数据类型吗?这样大小将取决于字符数?或者它是不同的东西.

谢谢

oracle plsql

0
推荐指数
1
解决办法
75
查看次数

PL/SQL if语句在触发器中被忽略

我试图在其中一个字段为空或使用以下代码为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)

sql oracle plsql

0
推荐指数
1
解决办法
177
查看次数

如何在纯C#中使用PL/SQL?

我详细阐述了这段小代码,开始了我的宝贝步骤.连接很好.简单的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)

c# sql oracle plsql

0
推荐指数
1
解决办法
95
查看次数

PL SQL遍历ID列表

我有一个名字清单。

约翰,山姆,彼得,杰克

我想查询与上面的每个过滤器相同的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)

sql oracle plsql plsqldeveloper oracle-sqldeveloper

0
推荐指数
1
解决办法
1万
查看次数

在Oracle PL/SQL中有什么区别:=和=

我想在Oracle PL/SQL中知道,

=可以用于布尔比较,它也可以用于赋值吗?

虽然是:=用于变量初始化,它也可以用于赋值吗?

那么,那么使用2有什么区别?

谢谢!

plsql oracle11g plsqldeveloper colon-equals

0
推荐指数
1
解决办法
1万
查看次数

错误(7,1):PLS-00103:遇到符号"BEGIN"

我是一个新的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" 了我的日志文件.任何人都可以帮我解决这个问题.谢谢

oracle plsql

0
推荐指数
1
解决办法
1万
查看次数

PL/SQL - 无法访问非嵌套表项的行

我试图获取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)

sql oracle plsql casting

0
推荐指数
1
解决办法
6946
查看次数

生成字符串范围


嗨,大家好.
我需要你帮助解决这个问题.
我需要在我的一个表中创建一堆序列号,为此我想使用存储过程.所以我想将FirstSN和LastSN作为参数传递给SP,并将N条记录插入到我的表中.序列号由前缀和增量部分组成.例如,我将SN0001作为FirstSN发送,SN0100作为LastSN发送,它应插入以下内容:
SN0001
SN0002
SN0003
...
SN0099
SN0100

如何在不使用循环的情况下执行此操作?

Ps我正在使用oracle 11.2.0

sql oracle plsql oracle11g

0
推荐指数
1
解决办法
43
查看次数

为什么缺少时间?

我有下面的代码

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部分消失了.

任何人都可以解释会非常感激.

sql oracle plsql oracle10g oracle11g

0
推荐指数
1
解决办法
73
查看次数