[英]Missing Right parenthesis error with `=>`
I am getting the error after writing the below code for a simple insert..select stmnt . 在为简单的insert..select stmnt编写以下代码后,出现错误。 I am confused as there seems nothing wrong with syntax . 我很困惑,因为语法似乎没有错。
INSERT INTO dimension_tab(FACT_1_ID,FACT_2_ID,FACT_3_ID,FACT_4_ID,SALES_VALUE)
SELECT TRUNC(DBMS_RANDOM.value(low => 1, high => 3)) AS fact_1_id,
TRUNC(DBMS_RANDOM.value(low => 1, high => 6)) AS fact_2_id,
TRUNC(DBMS_RANDOM.value(low => 1, high => 11)) AS fact_3_id,
TRUNC(DBMS_RANDOM.value(low => 1, high => 11)) AS fact_4_id,
ROUND(DBMS_RANDOM.value(low => 1, high => 100), 2) AS sales_value
FROM dual
CONNECT BY level <= 1000;
COMMIT;
You are using a valid syntax, but as you are using oracle 10g it will not support =>
, So you'll have to replace (low => 1, high => 3)
with (1, 3)
. 您使用的是有效语法,但是当您使用oracle 10g时,它将不支持=>
,因此您必须将(low => 1, high => 3)
替换为(1, 3)
。
Try like this, 这样尝试
INSERT INTO dimension_tab
SELECT TRUNC(DBMS_RANDOM.value( 1, 3)) AS fact_1_id,
TRUNC(DBMS_RANDOM.value( 1, 6)) AS fact_2_id,
TRUNC(DBMS_RANDOM.value( 1, 11)) AS fact_3_id,
TRUNC(DBMS_RANDOM.value( 1, 11)) AS fact_4_id,
ROUND(DBMS_RANDOM.value( 1, 100), 2) AS sales_value
FROM dual
CONNECT BY LEVEL <= 1000;
Syntax of DBMS_RANDOM.VALUE is DBMS_RANDOM.VALUE的语法为
DBMS_RANDOM.VALUE(
low IN NUMBER,
high IN NUMBER
)
So you can use like this... 所以你可以这样使用...
INSERT INTO dimension_tab (FACT_1_ID,FACT_2_ID,FACT_3_ID,FACT_4_ID,SALES_VALUE)
SELECT TRUNC(DBMS_RANDOM.value( 1, 3)) AS fact_1_id,
TRUNC(DBMS_RANDOM.value( 1, 6)) AS fact_2_id,
TRUNC(DBMS_RANDOM.value( 1, 11)) AS fact_3_id,
TRUNC(DBMS_RANDOM.value( 1, 11)) AS fact_4_id,
ROUND(DBMS_RANDOM.value( 1, 100), 2) AS sales_value
FROM dual
CONNECT BY LEVEL <= 1000;
COMMIT;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.