Table of Contents
How to modify fields in oracle database
Oracle ALTER TABLE MODIFY column example
Home Database Oracle How to modify fields in oracle database

How to modify fields in oracle database

Mar 02, 2022 pm 06:13 PM
oracle database

In Oracle, you can use the "ALTER TABLE MODIFY" statement to modify fields. The syntax is "ALTER TABLE table name MODIFY field name operations that need to be performed;"; common operations include: modifying column visibility, changing Default values ​​for columns, expressions that modify virtual columns, etc.

How to modify fields in oracle database

The operating environment of this tutorial: Windows 7 system, Oracle 11g version, Dell G3 computer.

How to modify fields in oracle database

In Oracle, you can use the "ALTER TABLE MODIFY" statement to modify fields and change the value of existing fields. definition.

To change the definition of a column in a table, use ALTER TABLE MODIFYcolumn syntax as follows:

ALTER TABLE 表名 
MODIFY 字段名 需要执行的操作;
Copy after login

The statement is straightforward. To modify a table's columns, you need to specify the column name, table name, and operation to be performed.

Oracle allows you to perform a variety of operations, but the following are the main commonly used operations:

  • Modify the visibility of a column

  • Allow or disallow NULL values

  • Shorten or expand the size of a column

  • Change the default value of a column

  • Expressions to modify virtual columns

To modify multiple columns, use the following syntax:

ALTER TABLE 表名
MODIFY (
    字段名1 action,
    字段名2 action,
    ...
);
Copy after login

Oracle ALTER TABLE MODIFY column example

First, create a new table named accounts for the demo:

-- 12c语法
CREATE TABLE accounts (
    account_id NUMBER GENERATED BY DEFAULT AS IDENTITY,
    first_name VARCHAR2(25) NOT NULL,
    last_name VARCHAR2(25) NOT NULL,
    email VARCHAR2(100),
    phone VARCHAR2(12) ,
    full_name VARCHAR2(51) GENERATED ALWAYS AS( 
            first_name || ' ' || last_name
    ),
    PRIMARY KEY(account_id)
);
Copy after login

Second, create a new table to the accounts table Insert some rows into:

INSERT INTO accounts(first_name,last_name,phone)
VALUES('Trinity',
       'Knox',
       '410-555-0197');


INSERT INTO accounts(first_name,last_name,phone)
VALUES('Mellissa',
       'Porter',
       '410-555-0198');


INSERT INTO accounts(first_name,last_name,phone)
VALUES('Leeanna',
       'Bowman',
       '410-555-0199');
Copy after login

Third , verify the insertion operation by using the following SELECT statement:

SELECT
    *
FROM
    accounts;
Copy after login
Copy after login
Copy after login
Copy after login

Execute the above query statement and get The following results-

How to modify fields in oracle database

1. Modify the visibility of the column

In Oracle 12c, you can Table columns are defined as invisible or visible. Invisible columns cannot be used for queries, such as:

SELECT
    *
FROM
    table_name;
Copy after login

or

DESCRIBE table_name;
Copy after login

. Invisible columns cannot be found.

However, it is possible to query invisible columns by explicitly specifying them in the query:

SELECT
    invisible_column_1,
    invisible_column_2
FROM
    table_name;
Copy after login

By default, table columns are visible. Invisible columns can be defined when creating the table or using the ALTER TABLE MODIFY column statement.

For example, the following statement makes the full_name column invisible:

ALTER TABLE accounts 
MODIFY full_name INVISIBLE;
Copy after login

Execute query data in the table again and get the following results-

How to modify fields in oracle database

The following statement returns data in all columns of the accounts table except the full_name column:

SELECT
    *
FROM
    accounts;
Copy after login
Copy after login
Copy after login
Copy after login

This is because full_name Column is not visible. To change a column from invisible to visible, use the following statement:

ALTER TABLE accounts 
MODIFY full_name VISIBLE;
Copy after login

2. Allow or disallow null Example

The following statement Change the email column to accept non-empty (not null) values:

ALTER TABLE accounts 
MODIFY email VARCHAR2( 100 ) NOT NULL;
Copy after login
Copy after login

However, Oracle issues the following error:

SQL Error: ORA-02296: cannot enable (OT.) - null values found
Copy after login

because when When changing a column from null to not null, you must ensure that the existing data conforms to the new constraints (that is, if NULL is not allowed in the original data ).

To solve this problem, first update the value of the email column:

UPDATE 
    accounts
SET 
    email = LOWER(first_name || '.' || last_name || '@oraok.com') ;
Copy after login

Please note that the LOWER() function converts the string to lowercase letter.

Then change the constraint on the email column:

ALTER TABLE accounts 
MODIFY email VARCHAR2( 100 ) NOT NULL;
Copy after login
Copy after login

Now, it should work as expected.

3. Expand or shorten the size of the column example

Suppose you want to add international codes to the phone column, such as : Prefix with 86. Before modifying the value of the column, we must expand the size of the phone column using the following statement:

ALTER TABLE accounts 
MODIFY phone VARCHAR2( 24 );
Copy after login

Now, we can update the phone number data:

UPDATE
    accounts
SET
    phone = '+86 ' || phone;
Copy after login

The following statement Verification update:

SELECT
    *
FROM
    accounts;
Copy after login
Copy after login
Copy after login
Copy after login

In the results of executing the above query statement, you should be able to see that the original phone number has the international area code prefixed with 86.

How to modify fields in oracle database

#To shorten the size of a column, make sure all data in the column fits the new size.

For example, trying to reduce the size of the phone column to 12 characters:

ALTER TABLE accounts 
MODIFY phone VARCHAR2( 12 );
Copy after login
Copy after login

Oracle Database issues the following error:

SQL Error: ORA-01441: cannot decrease column length because some  value is too big
Copy after login

To solve this problem, first, the international code should be removed from the phone number (ie: 86):

UPDATE
    accounts
SET
    phone = REPLACE(
        phone,
        '+86 ',
        ''
    );
Copy after login

The REPLACE() function replaces a substring with a new one String. In this case it will replace 86 with the empty string.

Then shorten the size of the phone column:

ALTER TABLE accounts 
MODIFY phone VARCHAR2( 12 );
Copy after login
Copy after login

4. Modify the virtual column

Assumption Fill in the full name in the following two-column format:

last_name, first_name
Copy after login

To do this, you can change the expression of the virtual column full_name as follows:

ALTER TABLE accounts 
MODIFY full_name VARCHAR2(52) 
GENERATED ALWAYS AS (last_name || ', ' || first_name);
Copy after login

以下语句验证修改:

SELECT
    *
FROM
    accounts;
Copy after login
Copy after login
Copy after login
Copy after login

执行上面查询语句,可以看到以下结果

How to modify fields in oracle database

5. 修改列的默认值

添加一个名为status的新列,默认值为1accounts表中。参考以下语句 -

ALTER TABLE accounts
ADD status NUMBER( 1, 0 ) DEFAULT 1 NOT NULL ;
Copy after login

当执行了该语句,就会将accounts表中的所有现有行的status列中的值设置为1

要将status列的默认值更改为0,请使用以下语句:

ALTER TABLE accounts 
MODIFY status DEFAULT 0;
Copy after login

可以在accounts表中添加一个新行来检查status列的默认值是0还是1

INSERT INTO accounts ( first_name, last_name, email, phone )
VALUES ( 'Julia',
         'Madden',
         'julia.madden@oraok.com',
         '410-555-0200' );
Copy after login

现在,查询accounts表中的数据:

SELECT
  *
FROM
  accounts;
Copy after login

执行上面查询语句,应该看类似下面的结果 

How to modify fields in oracle database

正如所看到的那样,ID4的账户的status列的值是0

推荐教程:《Oracle教程

The above is the detailed content of How to modify fields in oracle database. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

MySQL: An Introduction to the World's Most Popular Database MySQL: An Introduction to the World's Most Popular Database Apr 12, 2025 am 12:18 AM

MySQL is an open source relational database management system, mainly used to store and retrieve data quickly and reliably. Its working principle includes client requests, query resolution, execution of queries and return results. Examples of usage include creating tables, inserting and querying data, and advanced features such as JOIN operations. Common errors involve SQL syntax, data types, and permissions, and optimization suggestions include the use of indexes, optimized queries, and partitioning of tables.

What to do if the oracle can't be opened What to do if the oracle can't be opened Apr 11, 2025 pm 10:06 PM

Solutions to Oracle cannot be opened include: 1. Start the database service; 2. Start the listener; 3. Check port conflicts; 4. Set environment variables correctly; 5. Make sure the firewall or antivirus software does not block the connection; 6. Check whether the server is closed; 7. Use RMAN to recover corrupt files; 8. Check whether the TNS service name is correct; 9. Check network connection; 10. Reinstall Oracle software.

Why Use MySQL? Benefits and Advantages Why Use MySQL? Benefits and Advantages Apr 12, 2025 am 12:17 AM

MySQL is chosen for its performance, reliability, ease of use, and community support. 1.MySQL provides efficient data storage and retrieval functions, supporting multiple data types and advanced query operations. 2. Adopt client-server architecture and multiple storage engines to support transaction and query optimization. 3. Easy to use, supports a variety of operating systems and programming languages. 4. Have strong community support and provide rich resources and solutions.

How to solve the problem of closing oracle cursor How to solve the problem of closing oracle cursor Apr 11, 2025 pm 10:18 PM

The method to solve the Oracle cursor closure problem includes: explicitly closing the cursor using the CLOSE statement. Declare the cursor in the FOR UPDATE clause so that it automatically closes after the scope is ended. Declare the cursor in the USING clause so that it automatically closes when the associated PL/SQL variable is closed. Use exception handling to ensure that the cursor is closed in any exception situation. Use the connection pool to automatically close the cursor. Disable automatic submission and delay cursor closing.

How to create cursors in oracle loop How to create cursors in oracle loop Apr 12, 2025 am 06:18 AM

In Oracle, the FOR LOOP loop can create cursors dynamically. The steps are: 1. Define the cursor type; 2. Create the loop; 3. Create the cursor dynamically; 4. Execute the cursor; 5. Close the cursor. Example: A cursor can be created cycle-by-circuit to display the names and salaries of the top 10 employees.

How to stop oracle database How to stop oracle database Apr 12, 2025 am 06:12 AM

To stop an Oracle database, perform the following steps: 1. Connect to the database; 2. Shutdown immediately; 3. Shutdown abort completely.

What steps are required to configure CentOS in HDFS What steps are required to configure CentOS in HDFS Apr 14, 2025 pm 06:42 PM

Building a Hadoop Distributed File System (HDFS) on a CentOS system requires multiple steps. This article provides a brief configuration guide. 1. Prepare to install JDK in the early stage: Install JavaDevelopmentKit (JDK) on all nodes, and the version must be compatible with Hadoop. The installation package can be downloaded from the Oracle official website. Environment variable configuration: Edit /etc/profile file, set Java and Hadoop environment variables, so that the system can find the installation path of JDK and Hadoop. 2. Security configuration: SSH password-free login to generate SSH key: Use the ssh-keygen command on each node

How to create oracle dynamic sql How to create oracle dynamic sql Apr 12, 2025 am 06:06 AM

SQL statements can be created and executed based on runtime input by using Oracle's dynamic SQL. The steps include: preparing an empty string variable to store dynamically generated SQL statements. Use the EXECUTE IMMEDIATE or PREPARE statement to compile and execute dynamic SQL statements. Use bind variable to pass user input or other dynamic values ​​to dynamic SQL. Use EXECUTE IMMEDIATE or EXECUTE to execute dynamic SQL statements.

See all articles