标签: plsql

可以创建能够匹配NULL的Oracle正则表达式吗?

在Oracle中,是否可以使用单个正则表达式匹配特定字符串格式和空字符串?

有点像:

SELECT 1
  FROM DUAL
 WHERE REGEXP_LIKE('12345', '^([1-5]{5})|NULL$');

SELECT 1
  FROM DUAL
 WHERE REGEXP_LIKE('', '^([1-5]{5})|NULL$');

SELECT 1
  FROM DUAL
 WHERE REGEXP_LIKE(NULL, '^([1-5]{5})|NULL$');
Run Code Online (Sandbox Code Playgroud)

其中正则表达式的"NULL"部分被视为字符类而不是字符串文字,并且所有三个查询都返回1.

我正在编写一些数据验证例程,并希望存储/使用一个正则表达式来确定格式以及输入字符串是否为空 - 而不是为每个数据元素单独指定那些验证规则.

谢谢,杰夫

regex oracle plsql

1
推荐指数
2
解决办法
4414
查看次数

如何使用"order by"sql子句在开头使用指定数据对数据进行排序

我目前有一个表(/网格)的数据,我可以页面,筛选和排序.在桌子上我也有一个内置的复选框列.现在,分页,过滤和排序都发生在SQL查询中.我希望能够做的是按复选框列中单击的项目排序.这会将所有检查的项目带到表格的前面.由于复选框本身都是客户端,我不能告诉SQL查询按不存在的列排序(可能我需要动态创建一个?)

本质上我认为会发生的是,复选框ID值将被发送到查询中,SQL查询本身会以某种方式知道按先排序,然后由指定的其他查询排序.

有点像,点击1,2和3:

SELECT*FROM Blah ORDER BY(SELECT ID FROM Blah WHERE ID IN(1,2,3)),AnotherColumnToSort

无论如何,这是计划,任何人都有任何关于如何实现这一目标的想法?

更新:Smack我在Oracle数据库而不是SQL Server,就像我想象的那样.

sql oracle plsql

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

将列的最大值插入另一列

我有一个表定义如下:

create table apple(

A number,

B number);
Run Code Online (Sandbox Code Playgroud)

现在,我需要在表中获取值,如下所示:

A      B
------------------
1      4(max of A)
2      4(max of A)
3      4(max of A)
4      4(max of A)
Run Code Online (Sandbox Code Playgroud)

如何插入这些行,使其B最大值为A?

sql oracle plsql

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

正则表达式_#在字符串末尾

我在Oracle 10g中使用REGEXP_LIKE函数来查找后缀为_#的列中的值(如_1,_2等).我可以使用下面的查询在值的任何部分找到_#但是我最后只能返回_#的值吗?

SELECT * FROM Table WHERE  REGEXP_LIKE (COLUMN,'_[[:digit:]]')
Run Code Online (Sandbox Code Playgroud)

regex oracle plsql

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

什么可以导致Oracle 10g中的物化视图停止快速刷新?

如果我在Oracle中有物化视图,定义为REFRESH FAST ON COMMIT每15分钟一次.它在最初创建和快乐刷新时有效.什么可以导致它停止快速刷新?

我可以看到它已基于此停止刷新:

select mview_name, last_refresh_date from all_mviews;
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql materialized-views oracle10g

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

在最终提交之前更新新创建的行

insert into XYZ(col1, col2) values (1,2)
    update XYZ set ... where col1 = 1
    COMMIT
Run Code Online (Sandbox Code Playgroud)

正如在上面的代码中看到的,我们还没有提交我们的insert语句,我们在同一行上执行了更新操作,最后我们提交了整个批处理.

在这种情况下究竟会发生什么?在这种情况下是否有丢失数据的可能性?

sql oracle plsql

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

如何转义SQL Loader数据文件中的机箱字符?

我有一个SQL*Loader控件文件,其行如下:

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '#'
Run Code Online (Sandbox Code Playgroud)

通常情况下,我会使用引号,但如果在多行字符串中使用,这似乎会破坏emacs的python语法突出显示.问题是我们正在加载一个ADDRESS_LINE_2列,其中只有7,000个记录正在加载,因为它们有这样的行:

......(其他专栏),Apt#2,(其他专栏)......

这当然会导致错误.有没有办法逃脱封闭的角色,所以这不会发生?或者我只需要选择一个更好的封闭角色?

我查看了文档,但似乎没有找到答案.

sql oracle plsql oracle10g sql-loader

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

SQL语法格式工具

我发现需要经常通过电子邮件发送SQL语句,我想知道是否有人有一个工具可以对Oracle保留字,关键字和命名空间进行颜色编码,这样当代码从工具中复制到Lotus说明时就会出现在电子邮件中,就像在工具中一样.

sql oracle plsql

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

ORA-01731:遇到圆形视图定义

我们从sql server端迁移到oracle.

在sqlserver上我们曾经有过如下的视图

create view blah
AS 
Select column1, 
       column2
 FROM  blah;
Run Code Online (Sandbox Code Playgroud)

但在oracle上执行此操作会产生循环视图错误.

这是不允许在甲骨文方面?

sql oracle plsql

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

Oracle数据库10g快捷版和日期格式

我是Oracle的新手(我一直在使用MySQL,直到现在)所以这可能是一个愚蠢的问题.但是我创建了这个表(名字不是英文但忽略它,这并不重要):

CREATE TABLE Auta (
id_auto NUMBER(5) UNIQUE NOT NULL,
typ CHAR(10),
specifikacia_typu CHAR(15),
SPZ CHAR(8),
farba CHAR(20),
datum_vyroby DATE,
pocet_miest NUMBER(2),
pociatok_km NUMBER(6),
poplatok_denny NUMBER(4),
poplatok_km NUMBER(2));
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用这个INSERT查询:

INSERT INTO Auta VALUES (
1
,'Audi'
,'A6'
,'KE1-1548'
,'cierna'
,'20-12-2004'
,5
,158749
,1356
,88
);
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

ORA-01843: not a valid month
Run Code Online (Sandbox Code Playgroud)

我使用的日期格式是DD-MM-YYYY.我也试过DD.MM.YYYY,DD/MM/YYYY,我也尝试过像这样的月 - 日转换 - MM-DD-YYYY,MM/DD/YYYY - 仍然是同样的错误.

该怎么办?

sql oracle plsql oracle10g ora-01843

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

标签 统计

oracle ×10

plsql ×10

sql ×8

oracle10g ×3

regex ×2

materialized-views ×1

ora-01843 ×1

sql-loader ×1