Trending February 2024 # Autonomous Transaction In Oracle Pl/Sql: Commit, Rollback # Suggested March 2024 # Top 3 Popular

You are reading the article Autonomous Transaction In Oracle Pl/Sql: Commit, Rollback updated in February 2024 on the website We hope that the information we have shared is helpful to you. If you find the content interesting and meaningful, please share it with your friends and continue to follow and support us for the latest updates. Suggested March 2024 Autonomous Transaction In Oracle Pl/Sql: Commit, Rollback

What are TCL Statements in PL/SQL?

TCL stands for Transaction Control Statements. It will either save the pending transactions or roll back the pending transaction. These statements play the vital role because unless the transaction is saved the changes through DML statements will not be saved in the database. Below are the different TCL statements.


Saves all the pending transaction


Discard all the pending transaction


Creates a point in the transaction till which rollback can be done later


The transaction will be complete under the following scenarios.

When any of the above statements is issued (except SAVEPOINT)

When DDL statements are issued. (DDL are auto-commit statements)

WHEN DCL statements are issued. (DCL are auto-commit statements)

What is Autonomous Transaction

In PL/SQL, all the modifications done on data will be termed as a transaction. A transaction is considered as complete when the save/discard is applied to it. If no save/discard is given, then the transaction will not be considered as complete and the modifications done on the data will not be made permanent on the server.

Irrespective of some modifications done during a session, PL/SQL will treat the whole modification as a single transaction and saving/discard this transaction affects to the entire pending changes in that session. Autonomous Transaction provides a functionality to the developer in which it allows to do changes in a separate transaction and to save/discard that particular transaction without affecting the main session transaction.

This autonomous transaction can be specified at subprogram level.

To make any subprogram to work in a different transaction, the keyword ‘PRAGMA AUTONOMOUS_TRANSATION’ should be given in the declarative section of that block.

It will instruct that compiler to treat this as the separate transaction and saving/discarding inside this block will not reflect in the main transaction.

Issuing COMMIT or ROLLBACK is mandatory before going out of this autonomous transaction to the main transaction because at any time only one transaction can be active.

So once we made an autonomous transaction we need to save it and complete the transaction then only we can move back to the main transaction.



In the above syntax, the block has been made as an autonomous transaction.

Example 1: In this example, we are going to understand how the autonomous transaction is working.

DECLARE l_salary NUMBER; PROCEDURE nested_block IS PRAGMA autonomous_transaction; BEGIN UPDATE emp SET salary = salary + 15000 WHERE emp_no = 1002; COMMIT; END; BEGIN SELECT salary INTO l_salary FROM emp WHERE emp_no = 1001; SELECT salary INTO l_salary FROM emp WHERE emp_no = 1002; UPDATE emp SET salary = salary + 5000 WHERE emp_no = 1001; nested_block; ROLLBACK; SELECT salary INTO l_salary FROM emp WHERE emp_no = 1001; SELECT salary INTO l_salary FROM emp WHERE emp_no = 1002; end;


Before:Salary of 1001 is 15000 Before:Salary of 1002 is 10000 After:Salary of 1001 is 15000 After:Salary of 1002 is 25000

Code Explanation:

Code line 2: Declaring l_salary as NUMBER.

Code line 3: Declaring nested_block procedure

Code line 4: Making nested_block procedure as ‘AUTONOMOUS_TRANSACTION’.

Code line 7-9: Increasing the salary for employee number 1002 by 15000.

Code line 10: Committing the transaction.

Code line 13-16: Printing the salary details of employee 1001 and 1002 before changes.

Code line 17-19: Increasing the salary for employee number 1001 by 5000.

Code line 20: Calling the nested_block procedure;

Code line 21: Discarding the main transaction.

Code line 22-25: Printing the salary details of employee 1001 and 1002 after changes.

The salary increase for employee number 1001 is not reflected because the main transaction has been discarded. The salary increase for employee number 1002 is reflected because that block has been made as a separate transaction and saved at the end.

So irrespective of the save/discard at main transaction the changes at autonomous transaction has been saved without affecting the main transaction changes.

You're reading Autonomous Transaction In Oracle Pl/Sql: Commit, Rollback

Oracle Pl/Sql Dynamic Sql Tutorial: Execute Immediate & Dbms_Sql

What is Dynamic SQL?

Dynamic SQL is a programming methodology for generating and running statements at run-time. It is mainly used to write the general-purpose and flexible programs where the SQL statements will be created and executed at run-time based on the requirement.

In this tutorial, you will learn-

Ways to write dynamic SQL

PL/SQL provides two ways to write dynamic SQL

NDS – Native Dynamic SQL


NDS (Native Dynamic SQL) – Execute Immediate

Native Dynamic SQL is the easier way to write dynamic SQL. It uses the ‘EXECUTE IMMEDIATE’ command to create and execute the SQL at run-time. But to use this way, the datatype and number of variable that to be used at a run time need to be known before. It also gives better performance and less complexity when compares to DBMS_SQL.


The above syntax shows EXECUTE IMMEDIATE command.

Clause INTO is optional and used only if the dynamic SQL contains a select statement that fetches values. The variable type should match with the variable type of the select statement.

Clause USING is optional and used only if the dynamic SQL contains any bind variable.

Example 1: In this example, we are going to fetch the data from emp table for emp_no ‘1001’ using NDS statement.

DECLARE lv_sql VARCHAR2(500); lv_emp_name VARCHAR2(50): ln_emp_no NUMBER; ln_salary NUMBER; ln_manager NUMBER; BEGIN ly_sql:=;SELECT emp_name,emp_no,salary,manager FROM emp WHERE emp_no=:empmo:; EXECUTE IMMEDIATE lv_sql INTO lv_emp_name,ln_emp_no:ln_salary,ln_manager USING 1001; END; /


Employee Name : XXX Employee Number: 1001 Salary: 15000 Manager ED: 1000

Code Explanation:

Code line 2-6: Declaring variables.

Code line 8: Framing the SQL at run-time. SQL contains the bind variable in where condition ‘:empno’.

Code line 9: Executing the framed SQL text (which is done in code line 8) using the NDS command ‘EXECUTE IMMEDIATE’

The variables in ‘INTO’ clause (lv_emp_name, ln_emp_no, ln_salary, ln_manager) is used to hold the fetched values from the SQL query (emp_name, emp_no, salary, manager)

‘USING’ clause gives the values to the bind variable in the SQL query (:emp_no).

Code line 10-13: Displaying the fetched values.

DBMS_SQL for Dynamic SQL

PL/SQL provide the DBMS_SQL package that allows you to work with dynamic SQL. The process of creating and executing the dynamic SQL contains the following process.

OPEN CURSOR: The dynamic SQL will execute in the same way as a cursor. So in order to execute the SQL statement, we must open the cursor.

PARSE SQL: The next step is to parse the dynamic SQL. This process will just check the syntax and keep the query ready to execute.

BIND VARIABLE Values: The next step is to assign the values for bind variables if any.

DEFINE COLUMN: The next step is to define the column using their relative positions in the select statement.

EXECUTE: The next step is to execute the parsed query.

FETCH VALUES: The next step is to fetch the executed values.

CLOSE CURSOR: Once the results are fetched, the cursor should be closed.

Example 1: In this example, we are going to fetch the data from emp table for emp_no ‘1001’ using DBMS_SQL statement.

DECLARE lv_sql VARCHAR2(500); lv_emp_name VARCHAR2(50); ln_emp_no NUMBER; ln_salary NUMBER; ln_manager NUMBER; ln_cursor_id NUMBER; ln_rows_processed; BEGIN lv_sql:=‘SELECT emp_name,emp_no,salary,manager FROM emp WHERE emp_no=:empmo’; in_cursor_id:=DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(ln_cursor_id,lv_sql,DBMS_SQL.NATIVE); DBMS_SQL.BIXD_VARLABLE(ln_cursor_id:‘empno‘,1001); DBMS_SQL.DEFINE_COLUMN(ln_cursor_ici,1,ln_emp_name); DBMS_SQL.DEFINE_COLUMN(ln_cursor_id,2,ln_emp_no); DBMS_SQL .DEFINE_COLUMN(ln_cursor_id,3,ln_salary); DBMS_SQL .DEFINE_COLUMN(ln_cursor_id,4,ln_manager); ln_rows__processed:=DBMS_SQL.EXECUTE(ln_cursor_id);

LOOP IF DBMS_SQL.FETCH_ROWS(ln_cursor_id)=0 THEN EXIT; ELSE DBMS_SQL.COLUMN_VALUE(ln_cursor_id,1,lv_emp_name); DBMS_SQL.COLUMN_VALUE(ln_cursor_id,2,ln_emp_no); DBMS_SQL.COLUMN_VALUE(ln_cursor_id,3,In_salary); DBMS_SQL.COLUMN_VALUE(ln_cursor_id,4,In_manager); END IF; END LOOP; DBMS_SQL.CLOSE_ClIRSOR(ln_cursor_id); END: /


Employee Name:XXX Employee Number:1001 Salary:15000 Manager ID:1000

Code Explanation:

Code line 1-9: Variable declaration.

Code line 10: Framing the SQL statement.

Code line 11: Opening the cursor using DBMS_SQL.OPEN_CURSOR. It will return the cursor id which is opened.

Code line 12: After the cursor is opened, the SQL is parsed.

Code line 13: Bind variable ‘1001’ is assigning to the cursor id instead ‘:empno’.

Code line 14-17: Defining the column name based on their relative position in the SQL statement. In our case, the relative position is (1) emp_name, (2) emp_no (3) salary (4) manager. So based on this position we are defining the target variable.

Code line 18: Executing the query using DBMS_SQL.EXECUTE. It returns the number of records processed.

Code line 19-33: Fetching the records using a loop and displaying the same.

Code line 20: DBMS_SQL.FETCH_ROWS will fetch one record from the rows processed. It can be called repeatedly to fetch all the rows. If it cannot fetch rows, it will return 0, thus exiting the loop.


In this section, we have discussed dynamic SQL and the ways to execute DYNAMIC SQL. We have also seen the different steps in executing the dynamic SQL in both the ways. We have also seen the examples in which the same scenario is handled in both NDS and DBMS_SQL ways to perform execution at run-time.

Oracle Vs Google: Tech Pundits Weigh In

Oracle vs Google: tech pundits weigh in

There’s no lack of opinions out there this week on the long-coming case between Oracle and Google on who holds sway over the data they’re disputing, data used in Android that Oracle says is theirs. Where everyone seems to agree, it seems, is that this situation could be serious. Should Oracle be found in their own rights to get a piece of the Android action after Google’s been using code of theirs for the time Android has been live, Google could be in for a rather sizable chunk of payments coming up quick. If Oracle is found incorrect, on the other hand, Google will finally be free of accusations from one of their biggest looming legal threats.

Across the web we’ve heard tech voices speaking up on their take on the situation. Here on SlashGear, Chris Davies noted the first blows by Google in the case as being calling Oracle a Vampire, attacking Google now that their own smartphone ventures failed:

“Google pointed to three attempts by Sun – later acquired by Oracle – to build Java-based smartphone platforms. The company’s goal was “to build a mobile phone applications suite on top of JavaFx which will make Apple’s iPhone a direct competitor of ours,” according to an email from Oracle’s Larry Ellison to Sun’s Scott McNealy back in 2009. “We would then license the Java Phone software to carriers like Verizon” Ellison concludes.

That, perhaps unsurprisingly, fell flat; indeed, Google pointed out, Sun ended up giving the Java language to the public, and then Google built Android partially on top of it. The company even “publicly approved” that use, making this Oracle case laughable, the search giant claimed.” – Davies

Over at Boing Boing, Rob Beschizza quoted no less than Oracle CEO Larry Ellison speaking in the case at hand, saying the following appears to be “a gift to Google’s lawyers”:

“Do you understand that no one owns the Java programming language?” lead counsel Robert Van Nest asked. Ellison began a longer answer, but Judge William Alsup interrupted him and said it was a “yes or no” question. Finally Ellison said, “I’m not sure.”

“And anyone can use it without royalty?” Van Nest followed up.

“I’m not sure,” Ellison said again.

Then Van Nest showed a video of Ellison receiving the same question on a deposition video and answering “That’s correct” to both.

These quotes come from a Wired article by Caleb Garling where Oracle is “caught”, so to speak, several times on the opposite end of the argument they’re making now.

“Google’s lawyers seemingly found other situations where Ellison changed his tune, for example on the nature of an Oracle and Google co-development project for Java. And in a video from a JavaOne conference in 2009, after seeing an Android phone shaken at him while on stage, Ellison says, “We can see lots of Java coming from our friends at Google.” The idea apparently being to show that Ellison knew about and supported Google’s development of Java.” – Garling

Over at CNET, Larry Dignan spoke up on the situation with a simple two-sentence wrap-up:

“The takeaway here is clear. Oracle and Sun failed to monetize Java on the mobile front, and now Oracle is trying to use the courts to achieve what they couldn’t do in the marketplace.” – Dignan

At The Verge, Bryan Bishop speaks on the power of the case and, again, what it will mean for the tech world in the end:

“It’s a dramatic story from both parties, but no matter what the narrative, the case still seems to be one that comes down to simple matters of copyright. If the judge agrees that Java and other programming languages are protectable under current copyright law, and the jury finds that Google did indeed copy code, it’s unlikely that any number of intentions or motivations from the involved parties will factor into the end result.” – Bishop

Over at Ars Technica, Joe Mullin spoke on how Oracle welcomed Android when it was first initiated:

“Today Google responded … its lead lawyer, Robert Van Nest, gave a one-hour opening statement to the jury this morning. The Java APIs are free for all to use, just like the Java language itself, Van Nest told the jury—and Google built Android on its own, from scratch. When it was finished, Java’s creator, Sun Microsystems, wasn’t angry. It didn’t come demanding royalty payments. In fact, Sun CEO Jonathan Schwartz congratulated Google publicly and welcomed Android.” – Mullin

Mister Caleb Garling spoke up today on one of the key questions and answers asked in the case thus far:

“When asked if he was aware of any companies today that are using Java without taking one of the platform’s three licenses, Ellison responded, ‘The only company I know about is Google.'” – Garling

Let us know what you think of the case thus far! Are you feeling that Oracle has a case, or that Google will win over with their open-source software in the end? Who owns the Java?

Sql Group By Multiple Columns

Introduction to SQL GROUP BY Multiple Columns

SQL GROUP BY multiple columns is the technique using which we can retrieve the summarized result set from the database using the SQL query that involves grouping of column values done by considering more than one column as grouping criteria. Group by is done for clubbing together the records that have the same values for the criteria that are defined for grouping. When a single column is considered for grouping then the records containing the same value for that column on which criteria are defined are grouped into a single record for the resultset. Similarly, when the grouping criteria are defined on more than one column then all the values of those columns should be the same as that of other columns to consider them for grouping into a single record. In this article, we will learn about the syntax, usage, and implementation of the GROUP BY clause that involves the specification of multiple columns as its grouping criteria with the help of some of the examples.

Start Your Free Data Science Course


SELECT column1, column2,..., columnm, aggregate_function(columni) FROM target_table WHERE conditions_or_constraints GROUP BY criteriacolumn1 , criteriacolumn2,...,criteriacolumnj;

The syntax of the GROUP BY clause is as shown above. It is the optional clause used in the select clause whenever we need to summarize and reduce the resultset. It should always be placed after the FROM and WHERE clause in the SELECT clause. Some of the terms used in the above syntax are explained below –

column1, column2,…, column – These are the names of the columns of the target_table table that need to retrieved and fetched in the resultset.

aggregate_function(column) – These are the aggregate functions defined on the columns of target_table that needs to be retrieved from the SELECT query.

target_table – Name of the table from where the result is to be fetched.

conditions_or_constraints – If you want to apply certain conditions on certain columns they can be mentioned in the optional WHERE clause.

criteriacolumn1 , criteriacolumn2,…,criteriacolumnj – These are the columns that will be considered as the criteria to create the groups in the MYSQL query. There can be single or multiple column names on which the criteria need to be applied. We can even mention expressions as the grouping criteria. SQL does not allow using the alias as the grouping criteria in the GROUP BY clause. Note that multiple criteria of grouping should be mentioned in a comma-separated format.

Usage of GROUP BY Multiple Columns

When the grouping criteria are defined on more than one column or expression then all the records that match and have the same values for their respective columns mentioned in the grouping criteria are grouped into a single record. The group by clause is most often used along with the aggregate functions like MAX(), MIN(), COUNT(), SUM(), etc to get the summarized data from the table or multiple tables joined together. Grouping on multiple columns is most often used for generating queries for reports, dashboarding, etc.


Consider a table named educba_learning having the contents and structure as shown in the output of the following select query statement –

SELECT * FROM educba_learning;

The output of the execution of the above query statement is as follows showing the structure and contents of educba_learning table –

Now, we will group the resultset of the educba_learnning table contents based on sessions and expert_name columns so that the retrieved records will only a single record for the rows having the same values for sessions and expert_name collectively. Our query statement will be as follows –

SELECT sessions, expert_name FROM educba_learning GROUP BY sessions, expert_name ;

The output of the above query statement in SQL is as shown below containing the unique records for each of the session, expert name column values –

Note that while using the grouping criteria it is important to retrieve the records on which the grouping clause is defined. Using the above statement for retrieving all the records will give the following error if the SQL mode is set to only full group by –

SELECT * FROM educba_learning GROUP BY sessions, expert_name ;

The output of the above query statement in SQL is as shown below-

Let us execute the following query statement and study the output and confirm whether it results in output as discussed above –

SELECT SUM(sessions), expert_name FROM educba_learning GROUP BY sessions, expert_name ;

The output of the execution of the above query statement is as follows –

We can observe that for the expert named Payal two records are fetched with session count as 1500 and 950 respectively. Similar work applies to other experts and records too. Note that the aggregate functions are used mostly for numeric valued columns when group by clause is used.


We can group the resultset in SQL on multiple column values. When we define the grouping criteria on more than one column, all the records having the same value for the columns defined in the group by clause are collectively represented using a single record in the query output. All the column values defined as grouping criteria should match with other records column values to group them to a single record. Most of the time, group by clause is used along with aggregate functions to retrieve the sum, average, count, minimum or maximum value from the table contents of multiple tables joined query’s output.

Recommended Articles

We hope that this EDUCBA information on “SQL GROUP BY Multiple Columns” was beneficial to you. You can view EDUCBA’s recommended articles for more information.

How To Insert And Retrieve Dates In Oracle


You want to insert dates into a table and retrieve them.


Oracle, by default the uses the format DD-MON-YYYY to represent a date, where

DD represents a two-digit day.

MON represents first three letters of the month, e.g., FEB.

YYYY is a four-digit year, e.g., 1968

Let us take a look at an example of adding a row to the customers table, which contains a DATE column named dob.

The following INSERT adds a row to the customers table, setting the dob column to 05-FEB-1968:


INSERT INTO customers ( customer_id, first_name, last_name, dob, phone) VALUES (7, 'James', 'Bond', '31-DEC-2000', '007-007-0007');

You can also use the DATE keyword to supply a date literal to the database. The date must use the date format YYYY-MM-DD, where

YYYY is a four-digit year.

MM is a two-digit month from 1 to 12.

DD is a two-digit day.


INSERT INTO customers ( customer_id, first_name, last_name, dob, phone) VALUES (11, 'Roger', 'Federer', DATE '1983-10-01', '001-001-0001');

By default, the database returns dates in the format DD-MON-YY, where YY are the last two digits of the year.


The Oracle database has functions that enable you to convert a value in one data type to chúng tôi will use the TO_CHAR() and TO_DATE() functions to convert a datetime to a string and vice versa.

TO_CHAR() to Convert a Datetime to a String

TO_CHAR(x [, format]) to convert the datetime x to a string. We can also provide an optional format for x. An example format is MONTH DD, YYYY, where

MONTH is the full name of the month in uppercase.

DD is the two-digit day.

YYYY is the four-digit year.

The following query uses TO_CHAR() to convert the dob column from the customers table to a string with the format MONTH DD, YYYY


SELECT customer_id, TO_CHAR(dob, 'MONTH DD, YYYY') FROM customers;

The next query gets the current date and time from the database using the SYSDATE function, then converts the date and time to a string using TO_CHAR() with the format MONTH DD, YYYY, HH24:MI:SS. The time portion of this format indicates that the hours are in 24-hour format and that the minutes and seconds are also to be included in the string.



NOVEMBER  13, 2023, 10:04:11

TO_DATE() to Convert a String to a Datetime

We can use TO_DATE(x [, format]) to convert the x string to a datetime. We can provide an optional format string to indicate the format of x. If we omit format, the date must be in the default database format (usually DD-MON-YYYY or DD-MON-YY).

The following query uses TO_DATE() to convert the strings “31-DEC-2024” and “31-DEC-20” to the date December 31, 2023. However, the final date is displayed in the default format of DD-MON-YY.


SELECT TO_DATE('31-DEC-2024'), TO_DATE('31-DEC-20') FROM dual;

Finally, a DBA can help you set the default date format in Oracle.

A DBA can change the setting of NLS_DATE_FORMAT by setting this parameter’s value in the database’s chúng tôi or chúng tôi file, both of which are read when the database is started. A DBA can also set NLS_DATE_FORMAT using the ALTER SYSTEM command. You can also set the NLS_DATE_FORMAT parameter for your own session using SQL*Plus, which you do by using the ALTER SESSION command



Autonomous Smartdesk 2: An Affordable Electric Standing Desk

If you’re someone who sits at a desk all day, I don’t have to tell you how uncomfortable this can be (back and tailbone pain, stiff knees, poor circulation, bad posture, etc.). If you’re looking for a change and improved health, a sit stand desk by Autonomous should definitely be considered.

Standing desks come in all shapes and sizes. Some raise and lower manually while others can do so on their own via a built-in motor. Some have an entire desktop surface that can raise and lower, while others are an individual unit (like a previous workstation we reviewed) that sits on top of your desk.

Autonomous prides themselves on having “the most affordable high-quality standing desk, period.” After using it daily for 3 weeks, I agree. I’m sure that I’m really close to the weight limit considering the heavy dual mount I’m using along with my other desk items. Yet, even with a full plate, the motors of the SmartDesk 2 continue to work smoothly and efficiently.

Here’s a look at all that this desk has to offer.

Options and Customization

Autonomous ships to over sixty countries, so this desk isn’t just restricted to U.S. residents. It’s shipped in two separate packages: one for the frame and one for the desktop. If you add accessories or an AI box, those will all come in their own separate package.

One of the great things about the SmartDesk 2 is the ability to customize it as you see fit. You can select your preferred surface material (wood, walnut, oak, bamboo), surface design (classic, curve, ergonomic, wave), platform color (white, black, grey), and platform design.

The heavy-duty frame is made with industrial-grade steel which makes it extremely sturdy and durable. It doesn’t move at all when in use – no wobbling and only a gentle shake if you happen to bump into it by accident (I’m a bit clumsy).

For the testing unit we received the following: the classic 53″ x 30″ desktop surface in bamboo with a white frame and dual motors (Business Edition).

Home Edition vs. Business Edition

I want to point out the differences between the two Platform Design options: Home Edition and Business Edition.

With the Home Edition you only get one motor which means that the desk cannot handle as much weight; its max capacity is 220 lbs. (99kg). Additionally, the lowest position is 29″, and the highest position is 47″. If you’re really short or tall, this may not be the best option for you. I’m 5’2″ and my sitting level is 27″, so this wouldn’t be the best option for someone my height.

With the Business Edition you get two motors which allow the desk to handle more weight; its max capacity is 300 lbs. (136kg). The lowest position goes all the way down to 24″, and the highest position goes up to 51″. With this one you get those extra inches to accommodate shorter and taller heights.

Additional Accessories

There are even more features that you can add to your desk for an additional fee. You can add a wireless charger, USB charger, bag organizer, speaker, AI personal assistant, smart home control, developer SDK, and iOS and Android apps. These add-ons truly help to elevate the “smartness” of the desk.

Even though the desk is fairly easy for a handy person to set up (my husband did it alone in forty-five minutes), you can also add assembly service. Doing this will get you professional assembly in the comfort of your own home. Sadly, it’s only available in New York City, San Francisco, and Los Angeles at this time.

Setting Up the SmartDesk 2

The surface of the SmartDesk 2 comes with pre-drilled holes and screws, making it easy to attach everything to it and in the proper location. You also get adhesive cable clips to help organize and hide the cables that power it.

The two pre-drilled cup-size holes in both back corners are also great for neatly feeding your desktop cables through. It all makes for a very clean setup.

There is a control box that needs to be attached underneath the desktop. It connects to the keypad to control the height of the desk and with the power to get electricity to move it up and down. It’s attached to a 75-inch cable; however, it’s barely visible once you get everything organized underneath.

Even though the control box has to be plugged in (compatible with standard 110-120 volt outlets), it doesn’t use much power at all. According to Autonomous, it’s “the most energy efficient sit-to-stand frame – only 0.06-watt standby power consumption.“

Using the SmartDesk 2

With the SmartDesk 2 you’re getting a ton of space to work with which is great if there are a lot of items that you want within easy reach on your desktop.

If the classic size isn’t enough, there’s also the “XL Top” with even more space (70″ x 30″). It would be perfect for artists or graphic designers who do a lot of drawing and sketching. Anyone who needs a whole lot of surface area to work with will appreciate the extra large desktop.

You can also get the “Ergo Top” (pictured above) which is the same size as the classic desktop but has a cutout (17″ x 8″) in the front so that the desk conforms to your body while your arms fully rest on it. This is said to reduce pressure and encouragement movement. However, it also takes away some of that valuable desktop real estate.

The Power of the Smart Keypad

The Smart Keypad is the control center of the desk. There is an LED screen that displays the current height in inches. Next to that are arrows that allow you to move the desk up and down freely. These are used to find your preferred sitting and standing heights, after which you can program each one to a memory button.

Programming a button is done by pressing and holding the desired button until the LED screen flashes and you’re all set; that button will now automatically move your desk to that height when pressed.

What’s also great is that there are four buttons. Since you only need two for yourself, someone else like a significant other, family member, or co-worker can use the other two buttons.

Final Thoughts

I work from home, but I still do way too much sitting during the day, so I love that I don’t have to be sedentary anymore. Ever since using this desk, I’ve been doing a lot more standing, and dare I say that I’m actually enjoying it!

It’s also extremely convenient to have my sitting and standing levels pre-set so that I can switch back and forth without any effort (as opposed to my manual sit/stand workstation I’ve been using for the past few years).

How do you think Autonomous’ SmartDesk 2 compares to similar standing desks?

Autonomous SmartDesk 2

Charnita Fance

Charnita has been a Freelance Writer & Professional Blogger since 2008. As an early adopter she loves trying out new apps and services. As a Windows, Mac, Linux and iOS user, she has a great love for bleeding edge technology. You can connect with her on Facebook, Twitter, Google+, and LinkedIn.

Subscribe to our newsletter!

Our latest tutorials delivered straight to your inbox

Sign up for all newsletters.

By signing up, you agree to our Privacy Policy and European users agree to the data transfer policy. We will not share your data and you can unsubscribe at any time.

Update the detailed information about Autonomous Transaction In Oracle Pl/Sql: Commit, Rollback on the website. We hope the article's content will meet your needs, and we will regularly update the information to provide you with the fastest and most accurate information. Have a great day!