验证 Oracle 列中的 GUID 值

发布于 2024-12-02 14:40:12 字数 119 浏览 1 评论 0原文

我将 GUID 存储在 oracle 10g 表的一列中。该列的数据类型是 Varchar(2)。 现在我想检查此列中的值是否是有效的 GUID。

如何在 Oracle 中查询以检查值是否是有效的 GUID?

I am storing GUIDs in a column in oracle 10g table. The datatype of the column is Varchar(2).
Now I want to check if the values in this column are valid GUIDs.

How can I query in Oracle to check if the values are valid GUIDs?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

没企图 2024-12-09 14:40:12

我从此处< /a> 和来自 此处

create table guids ( guid varchar(36) );
insert into guids values ( 'BC1EAAAF-1B5A-4695-9797-3ED6C99B7FC5' );
insert into guids values ( 'BCXXAAAF-1B5A-4695-9797-3EDXXXXXXFC5' );
insert into guids values ( '-jk1029347 lka llur 193241 lk;qed' );

select guid,
    case when regexp_like(guid,
'^({|\()?[A-Fa-f0-9]{8}-([A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}(}|\))?

    )
  then 'Y'
  else 'N'
  end AS is_valid
from guids;

GUID                                 IS_VALID 
------------------------------------ -------- 
BC1EAAAF-1B5A-4695-9797-3ED6C99B7FC5 Y        
BCXXAAAF-1B5A-4695-9797-3EDXXXXXXFC5 N        
-jk1029347 lka llur 193241 lk;qed    N        

I've taken test samples from here and the regexp from here:

create table guids ( guid varchar(36) );
insert into guids values ( 'BC1EAAAF-1B5A-4695-9797-3ED6C99B7FC5' );
insert into guids values ( 'BCXXAAAF-1B5A-4695-9797-3EDXXXXXXFC5' );
insert into guids values ( '-jk1029347 lka llur 193241 lk;qed' );

select guid,
    case when regexp_like(guid,
'^({|\()?[A-Fa-f0-9]{8}-([A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}(}|\))?

    )
  then 'Y'
  else 'N'
  end AS is_valid
from guids;

GUID                                 IS_VALID 
------------------------------------ -------- 
BC1EAAAF-1B5A-4695-9797-3ED6C99B7FC5 Y        
BCXXAAAF-1B5A-4695-9797-3EDXXXXXXFC5 N        
-jk1029347 lka llur 193241 lk;qed    N        
梦在夏天 2024-12-09 14:40:12

我假设你的意思是VARCHAR2。 VARCHAR(2) 将是一个非常短的 GUID。

我不会将这些值存储在数据库中,然后验证它们是否正确。验证它们是否正确,然后存储它们。使用检查约束或触发器。这样,您就知道数据库中的内容是好数据。

I assume you mean VARCHAR2. VARCHAR(2) would be a very short GUID.

I wouldn't store these values in the database, then verify they are correct. Verify they are correct, then store them. Use a check constraint or a trigger. That way, you know what is in your database is good data.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文