我正在创建一个表,我需要在USER_TABLES.TABLE_NAME上添加一个外键约束.
我不太清楚该怎么做?
我尝试了以下代码行:
CONSTRAINT FK_USR_TBLS FOREIGN KEY (TABLE_NAME) REFERENCES USER_TABLES(TABLE_NAME)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试创建表时出现以下错误:
ORA-00904: "TABLE_NAME": invalid identifier
Run Code Online (Sandbox Code Playgroud) 我必须更改表以在特定列上创建条件非空约束,以便在 col1 和 col2 具有值时它不能为空。
首先,什么是条件非空约束?
其次,您能否提供有关如何完成此类操作的语法?
我只想知道 windows 1252 是否是 UTF-8 的子集?有什么区别?
考虑将我的数据库从 Windows 1252 迁移到 UTF-8,有什么想法和意见吗?
我有一个程序可以进行验证并在表中插入一条记录。INSERT当我尝试以下代码时,该过程在语句之后立即中断:
EXECUTE IMMEDIATE V_SOME_STRNG || ' returning SOME_ID into :NEW_ID' returning into V_TRGT_ID;
Run Code Online (Sandbox Code Playgroud)
我正在尝试执行INSERT存储在中的语句V_SOME_STRNG并将新记录的 ID 分配给V_TRGT_ID. 但是,我遇到了以下错误:
ORA-00933: SQL 命令未正确结束
有什么想法吗?
我有多个以"PLAYERS_"开头的表,它们包含一些我想要一次检索的数据.我可能会在将来添加更多以"PLAYER_"开头的表,所以我希望有一个select语句,它可以获取这些表的所有数据,而无需从所有这些表中进行选择.
这是我正在尝试使用的select语句,但我认为它不准确:
SELECT * FROM (SELECT TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME LIKE 'PLAYER_%';
Run Code Online (Sandbox Code Playgroud)
所有这一切都是让我得到子查询的结果,这是表的信息(不是我需要的).有没有其他方法可以实现我想要实现的目标?
我想要实现的目标与:
SELECT * FROM PLAYER_1, PLAYER_2, PLAYER_3;
Run Code Online (Sandbox Code Playgroud)
但是我想以一种我不应该担心像这样放表名的方式来做这件事.
我试图SYSDATE在不使用TRUNC的情况下获取其中一个表中的列和天数之间的天数,因为我需要将时间戳包含在减法中.
我试图实现类似于下面的代码,但不使用TRUNC
select * from table_name where trunc(sysdate) - trunc(column_name) > 60;
Run Code Online (Sandbox Code Playgroud)
请注意,column_name时间戳不是日期.