我正在尝试执行下一个查询:
select * from (case when :p1 = '1' then t1 when :p1=2 then t2);
Run Code Online (Sandbox Code Playgroud)
但这不起作用。我假设 from 子句中不允许使用 when 语句?有没有其他方法可以解决这个问题。谢谢
我有以下问题:我想用他的 id 和名称创建一个表 Client 。我还想检查“名称”字段是否仅包含字母。这是我的查询:
CREATE TABLE CLIENT(
ID NUMBER PRIMARY KEY,
FIRST_NAME CHAR(10) CONSTRAINT NAME_CHECK CHECK(REGEXP_LIKE(FIRST_NAME, '^[A-Za-z]*$'))
);
Run Code Online (Sandbox Code Playgroud)
该脚本运行良好,正在创建表。但是下面的 INSERT 语句
INSERT INTO CLIENT
VALUES(1, 'BOB');
不起作用。这是错误文本:
INSERT INTO CLIENT
VALUES(1, 'BOB')
Error report -
ORA-02290: check constraint (TASK8.NAME_CHECK) violated
Run Code Online (Sandbox Code Playgroud)
我确信这个错误的原因是相当明显的,但我就是不明白。我以前从未遇到过正则表达式的问题。
提前致谢
我需要一种方法来弄清楚如何在 SQL Developer 中使用 DESCRIBE 命令时获取按字母顺序排列的列列表。类似于 desc 表按名称排序;这当然行不通,但沿着这些思路。
最近我犯了一个错误,即我的 oracle 数据库中的所有表都被删除(从 SQL Developer 工具运行 drop 命令)在我不知道我在错误的数据库中删除表的所有事务序列中。每次删除一组表时,我都会提交操作。到时候,我意识到我已经删除了错误数据库中的表,我来不及回滚,因为它只回滚了最后一个操作。我也在网上搜索,发现SavePoints是解决方案,但我没有配置savepoints。我在 2 天前备份了所有表,因此,我从那里运行脚本并在过去 2 天内进行了丢失的更改。有没有其他方法可以让我的数据库状态恢复。不过,我已经习惯于在执行此类操作时创建保存点。但是,我仍然很困惑。
database-administration rollback oracle11g savepoints oracle-sqldeveloper
我在使用日期过滤器表达式时遇到问题。我正在使用 SQL Developer 并且在结果底部得到错误的结果和未知的命令错误。
select cmp.company_name, sum (inv.total_price), max (inv.invoice_date)
from companies cmp join invc_header inv on cmp.cmp_auto_key = inv.cmp_auto_key
group by cmp.company_name;
where inv.invoice_date = '2017-01-27'
Run Code Online (Sandbox Code Playgroud)
我还使用了 where inv.invoice_date = '2017-01-27'
错误是“未知命令”
杰夫
我有一群学生,我想授予他们对 Oracle 中设置的特定数据库的学生权限。有没有办法立即执行此操作,或者我只能单独执行此操作?
我有一个包含学生编号的 Excel 电子表格,这是到目前为止我用来单独添加它们的 SQL 代码
CREATE USER S56879 IDENTIFIED BY student
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA 100M ON users;
GRANT STUDENTROLE TO S56879;
Run Code Online (Sandbox Code Playgroud) 我有下一张桌子:
CREATE TABLE my_table (
id VARCHAR2(20 BYTE) NOT NULL,
name VARCHAR2(40 BYTE) NOT NULL,
age NUMBER,
PRIMARY KEY (id, name)
);
Run Code Online (Sandbox Code Playgroud)
我想从my_table创建表集合.填写我的数据.
我尝试:
DECLARE
type my_type IS TABLE OF my_table%ROWTYPE;
my_data my_type := my_type();
BEGIN
my_data := my_type('1','Jon',5);
END;
Run Code Online (Sandbox Code Playgroud)
结果我得到:
ORA-06550: line 8, column 16:
PLS-00306: wrong number or types of arguments in call to 'my_type'
ORA-06550: line 8, column 16:
PLS-00306: wrong number or types of arguments in call to 'my_type'
ORA-06550: line 8, column 16:
PLS-00306: wrong …Run Code Online (Sandbox Code Playgroud) 我想将日期间隔添加到 Oracle SQL 中的日期列表中,即下周的星期一。但是,当我使用建议的date + 1间隔类型时,我遇到了一个非常奇怪的错误,其中只有一天按预期累加,即Wednesday。我在这里做错了什么?这是 Oracle SQL Developer 中的错误吗?
WITH data AS (
SELECT '29-JAN-23' dt FROM dual UNION
SELECT '30-JAN-23' dt FROM dual UNION
SELECT '31-JAN-23' dt FROM dual UNION
SELECT '01-FEB-23' dt FROM dual UNION
SELECT '02-FEB-23' dt FROM dual UNION
SELECT '03-FEB-23' dt FROM dual UNION
SELECT '04-FEB-23' dt FROM dual UNION
SELECT '05-FEB-23' dt FROM dual UNION
SELECT '06-FEB-23' dt FROM dual UNION
SELECT '07-FEB-23' dt FROM dual UNION
SELECT '08-FEB-23' …Run Code Online (Sandbox Code Playgroud) 这是oracle 1z0-047测试中的问题.
EMPDET是一个包含列EMPNO和的外部表ENAME.哪个命令与EMPDET表有关?
A. UPDATE empdet
SET ename = 'Amit'
WHERE empno = 1234;
B. DELETE FROM empdet
WHERE ename LIKE 'J%';
C. CREATE VIEW empvu
AS
SELECT* FROM empdept;
D. CREATE INDEX empdet_dx
ON empdet(empno);
Run Code Online (Sandbox Code Playgroud)
答案是C.我有一个疑问如下:外表是什么意思?当我尝试运行查询时,所有四个选项都有效.
:)
Oracle不允许创建USER表.
任何人都可以指导我USER在Oracle中创建表.
TIA.
oracle ×10
sql ×6
oracle11g ×3
create-table ×1
intervals ×1
ora-01031 ×1
plsql ×1
regex ×1
rollback ×1
savepoints ×1
sql-order-by ×1