Oracle DDL動態SQL使用using語法報錯'ORA-01027: bind'
開發人員反映,在呼叫帶有變數的動態SQL時報錯
Error
report:
在Oracle的動態語句中,不允許使用USING語法呼叫帶有變數的DDL SQL
解決方法:
去掉USING語法,將引用的變數拼接成完整的語句。
點選(此處)摺疊或開啟
-
DECLARE
-
V_DOMAIN_NAME varchar2(50);
-
BEGIN
-
SELECT C_PARAM_VALUE INTO V_DOMAIN_NAME FROM OAPS_PARAMETERS WHERE C_PRODUCT_TYPE='OSMSR' AND C_GROUP_NAME='security' AND C_PARAM_NAME='Scp80SekmsDomainName';
-
EXECUTE IMMEDIATE 'ALTER TABLE OSMSR_EUICCS ADD (C_DOMAIN_NAME varchar2(50) DEFAULT :1)' using V_DOMAIN_NAME;
- END;
ORA-01027: bind variables not allowed for data definition operations
ORA-06512: at line 9
01027. 00000 - "bind variables not allowed for data definition operations"
*Cause: An attempt was made to use a bind variable in a SQL data definition
operation.
*Action: Such bind variables are not allowed.
在Oracle的動態語句中,不允許使用USING語法呼叫帶有變數的DDL SQL
解決方法:
去掉USING語法,將引用的變數拼接成完整的語句。
點選(此處)摺疊或開啟
-
DECLARE
-
V_DOMAIN_NAME varchar2(50);
-
plsql_block VARCHAR2(500);
-
BEGIN
-
SELECT C_PARAM_VALUE INTO V_DOMAIN_NAME FROM OAPS_PARAMETERS WHERE C_PRODUCT_TYPE='OSMSR' AND C_GROUP_NAME='security' AND C_PARAM_NAME='Scp80SekmsDomainName';
-
plsql_block := 'ALTER TABLE OSMSR_EUICCS ADD (C_DOMAIN_NAME varchar2(50) DEFAULT ''' || V_DOMAIN_NAME || ''')';
-
EXECUTE IMMEDIATE plsql_block;
- END;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26506993/viewspace-2136962/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 05-v-bind動態繫結class(物件語法)物件
- SQL學習___02:DDL+DCL語法SQL
- 複習execute immediate動態sql語法SQL
- mysql8.0 部分sql語法報錯問題MySql
- Oracle 迴圈呼叫動態SQL語句OracleSQL
- oracle動態sql語句處理(轉)OracleSQL
- 動態 SQL、EXECUTE IMMEDIATE、using、into、returningSQL
- oracle 遊標中使用 動態 sqlOracleSQL
- Oracle 動態SQLOracleSQL
- 動態sql 報表SQL
- PL/SQL與DDL語句SQL
- 動態sql無法recoverSQL
- [SQL] Oracle基礎語法SQLOracle
- Oracle常用sql語法集合OracleSQL
- Oracle sql with 語句語法與例子OracleSQL
- CRS啟動報錯Failed 3 to bind listening endpointAI
- PL/SQL 動態sql語句例SQL
- 用動態SQL語句SQL
- 動態SQL語句 (轉)SQL
- PL/SQL 中使用DDLSQL
- Oracle 獲取ddl語句Oracle
- oracle使用dbms_metadata.get_ddl包檢視DDL語句定義Oracle
- 英語語法-----情態動詞(一)
- navicat 建立事件報語法錯誤事件
- Oracle SQL的一些語法OracleSQL
- MySQL的DDL和DML操作語法MySql
- PLSQL Language Referenc-PL/SQL動態SQL-本地動態SQL(EXECUTE IMMEDIATE語句)SQL
- Mybatis 動態執行SQL語句MyBatisSQL
- day06-動態SQL語句SQL
- 啟動報錯:Access denied for user 'root'@'localhost' (using password:YES)localhost
- oracle procedure plsql 動態sql之動態傳遞表OracleSQL
- 使用動態SQL語句實現簡單的行列轉置(動態產生列)SQL
- 6.3. 基本SQL語句——6.3.1. DDLSQL
- MySQL入門---(一)SQL的DDL語句MySql
- OCP課程11:SQL之使用DDL語句建立和管理表SQL
- Mybatis批量更新SQL報錯☞解決辦法MyBatisSQL
- ORACLE SQL Loader的詳細語法OracleSQL
- Oracle和SQL對比語法總結OracleSQL