这个SQL查询有什么问题 -
CREATE TABLE emp_dept_join2
(
employee_id Number,
department_id Number,
first_name Varchar2);
Run Code Online (Sandbox Code Playgroud)
我正进入(状态
ORA-00906:缺少左括号错误.
朋友们,
我是DB的新手,我需要一些帮助/信息.我们的项目中有一个表"record_table",其中的值是使用C++代码插入的.
该表有多列,其中三列表示例如."serialNo,type,sub_type"C++代码为这些列的组合插入重复值(这些列不是该表的唯一或主要列).但是3列的组合应该是唯一的.
现在我们要确保不应插入此组合的重复项.我正在考虑为这些列添加唯一约束,以便在插入具有这些重复值的新记录时,它将不允许.
我认为这应该可行,但我怀疑它是否会达到性能,C++二进制文件每天运行并且它会插入大约200万条记录.将创建独特的约束命中性能.(意味着运行时间会减慢,或者因为表有数百万条记录将创建唯一约束,因为它必须对这些列进行哈希等)
如果可以,请建议.
我需要根据数据之间的任何单词进行搜索。如何在存储过程中为此传递参数?
where like employeename concat(empname,'%')
Run Code Online (Sandbox Code Playgroud)
不起作用
它只会得到开始的emp名称...
我试图通过生成自动增量数字将大约25k行插入表中.我的自动增量数是19位数.
例如,对于一行,我的查询如下所示:
insert into myTable(From_Value,To_Value)
values('6001761093000000000','6001761093999999999');
Run Code Online (Sandbox Code Playgroud)
我的两列都是VARCHAR2(20 BYTE)数据类型.
如何通过自动递增From_Value和To_Value?来编写用于插入大约25k行的优化代码?
提前致谢.
SQL max函数没有给出正确的结果
select max (liri_appid) from idea_interface;
Run Code Online (Sandbox Code Playgroud)
结果是:90802但我知道它的最大值为15454545
我在运行order by子句时遇到的同样问题.结果即将到来
1
13
2
23
4
5
6
69
777
9
Run Code Online (Sandbox Code Playgroud)
不知道为什么.
这是我的代码:
create or replace trigger tr_interdit
before delete on reservation
for each row
DECLARE
V_res_date RESERVATION.DATEFIN%type;
begin
SELECT DATEFIN into V_res_date
FROM reservation
where DATEFIN = :old.DATEFIN;
if V_res_date<add_months(V_res_date,-12)
then RAISE_APPLICATION_ERROR(-20001, 'Date fin na pas depasse un ans');
end if;
end tr_interdit;
/
Run Code Online (Sandbox Code Playgroud)
但是当我删除一行后,即使它不应该被删除,我也会收到这个错误.
这是错误:
删除"DANIEL"."保留",其中ROWID ='AAAFCvAABAAALHhAAA'和ORA_ROWSCN ='3392006'和("NUMR"为空或"NUMR"不为空)ORA-04091:表DANIEL.RESERVATION正在变异,触发/功能可能看不到它ORA-06512:在"DANIEL.TR_INTERDIT",第4行ORA-04088:执行触发器'DANIEL.TR_INTERDIT'时出错
Source_View只有近800条记录,但我的程序花了将近3分钟来更新PHONE表.我在每一步都有评论来解释逻辑.任何帮助表示赞赏.
要求:使用视图创建一个每天检查电话号码的流程并相应地进行更新.
1)从表1中获取所有区域keycol SELCT*FROM Table1 WHERE CATEGORY ='T';
2)从table2获取活动销售代表数据并获取其用户ID SELECT USER_ID FROM Table2 WHERE key_colval =''AND JOB_TITLE ='Sales Rep'AND STATUS ='Active';
3)使用该用户id查询source_VIEW SELECT*FROM source_VIEW WHERE USER_ID =''AND key_colval ='';
4)如果我们从上面的步骤中找不到任何内容,那么4.1)SELECT*FROM source_VIEW WHERE key_colval ='';
PROCEDURE main_PHONE_UPD
IS
V_USER_ID VARCHAR2(10);
BEGIN
EXECUTE IMMEDIATE 'TRUNCATE TABLE TMP_source_VIEW';
EXECUTE IMMEDIATE 'INSERT INTO TMP_source_VIEW SELECT SUBSTR(key_col,6) key_colval,MOBILE,USER_ID FROM source_VIEW WHERE MOBILE IS NOT NULL'; -- Loading to temp table from source view
COMMIT;
FOR REC IN (SELECT key_colval
FROM Table1
WHERE CATEGORY = 'T' …Run Code Online (Sandbox Code Playgroud) 我有一个执行立即的查询字符串.
我怎么能执行立即这个PL/SQL?
query string ='执行立即选择....';
想要这样做: Execute immediate 'query string';
这变成了: Execute immediate 'Execute immediate select ....;';
你知道我怎么能这样做?
任何人都可以帮我如何转换2016-07-01 01:12:22 PM为2016-07-01 13:12:22PL/SQL?我使用了以下但没有运气.
SELECT TO_TIMESTAMP ('08-FEB-19 06.41.41.000000 PM', 'DD-Mon-RR HH24:MI:SS.FF')
FROM dual
Run Code Online (Sandbox Code Playgroud)
我期待:08-FEB-19 18.41.41.000000
我收到以下错误:
ORA-01830:日期格式图片在转换整个输入字符串之前结束
我正在使用看起来像这样的oracle过程
CREATE PROCEDURE spName (
pCurosr OUT refcursor,
par2 IN VARCHAR := NULL,
....
....
par98 IN VARCHAR := NULL,
error OUT NUMBER
) AS
BEGIN
....
....
END
Run Code Online (Sandbox Code Playgroud)
问题是,某些过程使用了太多的参数,这些参数已将NULL设置为默认值。我想知道的是,是否可以执行这样的程序?
exec spName(:refcur, :par5 = 'value', :error);
Run Code Online (Sandbox Code Playgroud)
仅将我需要的供应参数和所有其他参数设置为默认值。