[英]The nextval does not work when executing script in Oracle
我正在運行以下腳本:
INSERT INTO Schema.columna (id_columna, n_nivel, n_esprincipal, s_cbasedatos,
s_cmostrar, n_orden, n_tamano, n_formato, n_nivelorden, n_totaliza,
n_esexpandible, n_cuenta, n_esvisible)
VALUES(sq_COLUMNA.nextval, 100022, 0, 'NOMBRESECTOR', 'NOMBRE SECTOR', 1, 25,
3, 1, 0, 0, 0, 1);
但它會拋出以下錯誤:ORA-02289:序列不存在
sq_Columna序列的腳本如下所示:
CREATE SEQUENCE "Schema"."sq_COLUMNA" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE ;
為什么它說錯誤序列不存在? 我們應該創建一個觸發器? 我沒有oracle的經驗
如果序列存在且用戶具有權限,則使用引號解決它。 例:
select sq_COLUMNA.nextval from dual;--> Throughs error ORA-02289
select "sq_COLUMNA".nextval from dual;--> gives nextval
引用:“帶引號的標識符以雙引號(”)開頭和結尾。 如果使用帶引號的標識符命名模式對象,則每次引用該對象時都必須使用雙引號。“
參考: https : //docs.oracle.com/database/121/SQLRF/sql_elements008.htm#SQLRF51129
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.