Monday, December 20, 2010

Pl/Sql Tutorial

Congratulations on your decision to read this book, Sams Teach Yourself PL/SQL in 21 Days, Second Edition! If you are new to the Oracle environment, this book will help you learn and master Oracle's built-in procedural language quickly. Knowledge of PL/SQL (Procedural Language/Structured Query Language) is becoming a fundamental necessity no matter which of Oracle's many products you use.
Today, on your first day, you will accomplish these tasks:
  • Learn what PL/SQL is and why you should master it
  • Learn how PL/SQL relates to other Oracle products
  • Learn what resources you need to finish this book
  • Write your first PL/SQL function
Over the remaining 20 days, you'll delve deeper into the power and capabilities of this language and learn how to leverage its power in your applications regardless of whether you are doing client/server programming with Oracle's tools (such as Developer/2000), using other front-end tools (such as PowerBuilder), or simply writing some batch jobs that run on the server.

What Is PL/SQL?

PL/SQL is a procedural language that Oracle developed as an extension to standard SQL to provide a way to execute procedural logic on the database.

New Term - If you have worked with relational databases in the past, you are no doubt familiar with SQL, which stands for Structured Query Language. SQL itself is a powerful declarative language. It is declarative in the sense that you describe the results that you want but not how they are obtained. This is good because you can insulate an application from the specifics of how the data is physically stored. A competent SQL programmer can also push a great deal of processing work back to the server level through the creative use of SQL.

There are limits, though, to what you can accomplish with a single declarative query. The real world is seldom as neat and clean as we would like it to be. Developers often find themselves needing to execute several queries in succession and process the specific results of one query before going on to the next. This leads to two problems in a client/server environment:
  • The procedural logic, that is, the definition of the process, resides on client machines.
  • The need to look at the data from one query and use it as the basis for the next query results in an increased amount of network traffic.
Why are these problems? The procedural logic on client machines can quickly become out of sync if the software is upgraded. It can also be implemented incorrectly, resulting in a loss of database integrity. The need to pull down large amounts of intermediate data to a client results in a long wait for the end users who must sit there staring at the hourglass while the data is transferred to their machines. The cumulative effects of a number of clients pulling large amounts of data across the network further decrease performance.
PL/SQL provides a mechanism for developers to add a procedural component at the server level. It has been enhanced to the point where developers now have access to all the features of a full-featured procedural language at the server level. It also forms the basis for programming in Oracle's continually evolving set of client/server development tools, most notably Developer/2000.

Why Learn PL/SQL?

If you are developing with Oracle products, Developer/2000 for example, the answer to this question is simple. You need to know PL/SQL because those products use PL/SQL for any procedural code. But what if you don't develop with Oracle's products? What if all you use is Oracle's database engine? Is PL/SQL of any use to you? Yes! Absolutely it is.
Regardless of the front-end tool that you are using, you can use PL/SQL to perform processing on the server rather than the client. You can use PL/SQL to encapsulate business rules and other complicated logic. It provides for modularity and abstraction. You can use it in database triggers to code complex constraints, which enforce database integrity; to log changes; and to replicate data. PL/SQL can also be used with stored procedures and functions to provide enhanced database security. Finally, it provides you with a level of platform independence. Oracle is implemented on many hardware platforms, but PL/SQL is the same on all of them. It makes no difference whether you are running Personal Oracle on a laptop or Oracle8i Enterprise on UNIX.
Regardless of what development tools you use, if you are developing in an Oracle environment, your knowledge of PL/SQL and your ability to apply it will give you a competitive advantage against those who do not have that knowledge. With PL/SQL you have the power to make your applications more robust, more efficient, and more secure.

SQL, SQL*Plus, PL/SQL: What's the Difference?

This question has bedeviled many people new to Oracle. There are several products with the letters "SQL" in the title, and these three, SQL*Plus, SQL, and PL/SQL, are often used together. Because of this, it's easy to become confused as to which product is doing the work and where the work is being done. This section briefly describes each of these three products.

SQL

SQL stands for Structured Query Language. This has become the lingua franca of database access languages. It has been adopted by the International Standards Organization (ISO) and has also been adopted by the American National Standards Institute (ANSI). When you code statements such asSELECTINSERTUPDATE, and DELETE, SQL is the language you are using. It is a declarative language and is always executed on the database server. Often you will find yourself coding SQL statements in a development tool, such as PowerBuilder or Visual Basic, but at runtime those statements are sent to the server for execution.

PL/SQL

PL/SQL is Oracle's Procedural Language extension to SQL. It, too, usually runs on the database server, but some Oracle products such as Developer/2000 also contain a PL/SQL engine that resides on the client. Thus, you can run your PL/SQL code on either the client or the server depending on which is more appropriate for the task at hand. Unlike SQL, PL/SQL is procedural, not declarative. This means that your code specifies exactly how things get done. As in SQL, however, you need some way to send your PL/SQL code up to the server for execution. PL/SQL also enables you to embed SQL statements within its procedural code. This tight-knit relationship between PL/SQL, SQL, and SQL*Plus is the cause for some of the confusion between the products.

SQL*Plus

SQL*Plus is an interactive program that allows you to type in and execute SQL statements. It also enables you to type in PL/SQL code and send it to the server to be executed. SQL*Plus is one of the most common front ends used to develop and create stored PL/SQL procedures and functions.
What happens when you run SQL*Plus and type in a SQL statement? Where does the processing take place? What exactly does SQL*Plus do, and what does the database do? If you are in a Windows environment and you have a database server somewhere on the network, the following things happen:
  1. SQL*Plus transmits your SQL query over the network to the database server.
  2. SQL*Plus waits for a reply from the database server.
  3. The database server executes the query and transmits the results back to SQL*Plus.
  4. SQL*Plus displays the query results on your computer screen.
Even if you're not running in a networked Windows environment, the same things happen. The only difference might be that the database server and SQL*Plus are running on the same physical machine. This would be true, for example, if you were running Personal Oracle on a single PC.
PL/SQL is executed in much the same manner. Type a PL/SQL block into SQL*Plus, and it is transmitted to the database server for execution. If there are any SQL statements in the PL/SQL code, they are sent to the server's SQL engine for execution, and the results are returned back to the PL/SQL program.
The important thing is that SQL*Plus does not execute your SQL queries. SQL*Plus also does not execute your PL/SQL code. SQL*Plus simply serves as your window into the Oracle database, which is where the real action takes place. Figure 1.1 illustrates this relationship.
Relationship of SQL*Plus, PL/SQL, and Oracle.
Several other tools besides SQL*Plus can serve as your window to the database. Server Manager, which has an interface similar to SQL*Plus, is one such tool, although Oracle plans to stop supporting it sometime in the future. If you have Oracle Enterprise Manager installed, you should take a look at SQLPlus Worksheet. SQLPlus Worksheet is a GUI tool that is fully compatible with SQL*Plus but is much easier to use. If you are a Developer 2000 programmer, you'll have access to Oracle's Procedure Builder—a tool designed for developing and debugging PL/SQL code. You'll read more about SQLPlus Worksheet and Procedure Builder later in this chapter.
SQL*Plus is used for most of the examples in this book because of its universal availability to developers. It is perhaps still the most widely used tool to develop, test, and create PL/SQL stored subprograms and SQL queries.

Note - In addition to Oracle's tools, several third-party vendors also have tools that can be used to develop PL/SQL code. Some of the major products in this space are

What You Need to Finish This Book

In order to try the examples and complete the exercises in this book, you will need access to
  • An Oracle8i database (the Personal Edition will work)
  • SQL*Plus or SQLPlus worksheet

Note - Where possible, the exercises and examples in this book have been designed to run equally well under both Oracle8 and Oracle8i. Many, especially those in the first nine days, will even run under Oracle7. However, Oracle8i contains many new features that are not available in previous releases. Days 10, 11, 12, 20, and 21, in particular, are heavily focused on the new 8i features.

If you do not currently have access to an Oracle database, there are at least two ways to get your hands on one. For a nominal cost, you can visit Oracle's online store and purchase a 30-day evaluation version of almost any Oracle product, including the database. You can get to the online Oracle Store from Oracle's home page, http://www.oracle.com. Another option is to join the Oracle Technology Network (OTN). OTN members can download developer-licensed copies of Oracle's database software at no charge. OTN members also have the option of subscribing to various technology tracks in order to get regular shipments of Oracle software CDs. You can register as an OTN member at no cost. The URL to visit is http://technet.oracle.com.
You will need these database privileges roles:
  • CREATE PROCEDURE
  • CREATE SEQUENCE
  • CREATE SESSION
  • CREATE TABLE
  • CREATE TRIGGER
  • CREATE VIEW
  • CREATE TYPE
The following Oracle-supplied packages should be available:
  • DBMS_OUTPUT
  • DBMS_SQL
  • UTL_FILE
  • DBMS_PIPE
  • DBMS_ALERT
Your database administrator can help you verify that these packages are available to you.
If you are using Oracle8i Personal Edition, you can verify the existence of these packages by logging on as the user SYSTEM and issuing the following query:
SELECT object_name
FROM dba_objects
WHERE owner='SYS'
AND object_type = 'PACKAGE';
The resulting list will show you all packages in the database owned by the user SYS. The packages named in this chapter should be in that list. Of those, the DBMS_OUTPUT is the most essential and is used throughout most of the exercises and examples to display results. The other packages are discussed only in specific chapters.

Caution - I recommend that you do not use a production database and that you create the sample tables in a schema that is not shared with other users. If you are using Personal Oracle on your own PC, you won't have a problem with this. If you are using an employer's facilities, you might want to discuss use of the database with your employer's database administrator, or DBA, as they are often called. There is nothing inherently dangerous in any of the exercises or examples, but there is always the risk that a coding mistake, such as an infinite loop, might tie up CPU or I/O resources. It's always good etiquette to minimize the potential impact of your mistakes on other developers and end users.

Getting Started with PL/SQL

By now you should have a basic understanding of what PL/SQL is and how it relates to other Oracle products. You should have access to an Oracle database environment either at work or at home. During the rest of this chapter, you will learn some of the basics of PL/SQL, and you will write your first Oracle stored function.

PL/SQL Is Block Structured


New Term - PL/SQL is referred to as a block structured language A PL/SQL block is a syntactical unit that might contain program code, variable declarations, error handlers, procedures, functions, and even other PL/SQL blocks.

The Syntax for a PL/SQL Block
DECLARE
variable_declarations
BEGIN
program_code
EXCEPTION
exception_handlers

END;
In this syntax, variable_declarations are any variables that you might want to define. Cursor definitions and nested PL/SQL procedures and functions are also defined here. program_code refers to the PL/SQL statements that make up the block. exception_handlers refers to program code that gets triggered in the event of a runtime error or exception.
The declaration section of a PL/SQL block is optional, although in practice it is unusual not to have any declarations at all. The exception handler portion of a PL/SQL block is also optional, and you won't see much of it until Day 7, "Procedures, Packages, Errors, and Exceptions."

Note - When you're defining PL/SQL functions, procedures, and triggers, the keyword DECLARE is not used. When defining a function, the function specification, or function header as it is sometimes called, begins the block. Similarly, procedure and trigger specifications begin procedure and trigger blocks. Function, procedure, and trigger blocks are covered in more detail on Day 2, "Writing Declarations and Blocks."


New Term - Any variable declarations must immediately follow DECLARE and come before BEGIN. The BEGIN and END keywords delimit the procedural portion of the block. This is where the code goes. The EXCEPTION keyword signifies the end of the main body of code, and begins the section containing exception handling code. The semicolon at the end of the block, and at the end of each statement, is the PL/SQL statement terminator, and signifies the end of the block.


Tip - Omitting the semicolon at the end of a block is a common oversight. Leave it off, and you'll get a syntax error. Remember to include it and you will save yourself lots of aggravation.

Blocks such as the one shown in "The Syntax for a PL/SQL Block" form the basis for all PL/SQL programming. An Oracle stored procedure consists of one PL/SQL block. An Oracle stored function consists of one PL/SQL block. An Oracle database trigger consists of one PL/SQL block. It is not possible to execute PL/SQL code except as part of a block.
PL/SQL blocks can be nested. One block can contain another block as in the following example:
DECLARE
variable declarations go here
BEGIN
some program code
BEGIN
code in a nested block
EXCEPTION
exception_handling_code
END;
more program code
END;
Nesting of blocks is often done for error-handling purposes. You will read more about error handling on Day 7.

Compiling and Executing a Simple Block

Are you ready to try writing your first PL/SQL code? Good. Remember that for this and all other examples in this book, you will be using SQL*Plus to send the PL/SQL code to the Oracle database for execution.
  1. Begin by running SQL*Plus and connecting to your Oracle database. Your initial SQL*Plus screen should look like the one shown in Figure 1.2.
  2. Next, type in the following lines of code from Listing 1.1 exactly as shown. Notice the slash at the end. It must be typed in as well, exactly as shown.
Relationship of SQL*Plus, PL/SQL, and Oracle.
Initial SQL*Plus screen.
Listing 1.1  Your First PL/SQL Block
DECLARE
x NUMBER;
BEGIN
x := 72600;
END;
/

Tip - The slash at the end tells SQL*Plus that you are done typing PL/SQL code. SQL*Plus will then transmit that code to the Oracle database for execution. The slash has meaning to SQL*Plus only, not to PL/SQL.


Tip - The slash character must be typed on a line by itself, and it must be the first character on that line; otherwise, it will get sent to the database and generate an error message.

After you type the slash, SQL*Plus transmits your code to Oracle for execution. After your code executes, your output should look like the following:
declare
x integer;
begin
x := 65400;
end;
/
PL/SQL procedure successfully completed
The code you just executed was probably not very exciting, possibly because there was no output. PL/SQL does have some limited output facilities, and next you will learn how to produce some simple screen output.

What About Some Output?

When it was originally designed, PL/SQL had no output facilities at all. Remember that PL/SQL is not a standalone language. It is almost always used in conjunction with some other program or tool that handles the input, output, and other user interaction.
Oracle now includes the DBMS_OUTPUT package with PL/SQL, which provides you with some limited output capabilities. You will learn more about packages during Day 8, "Using SQL," but for now it's enough to know that you can use the dbms_output.put_line procedure as shown in Listing 1.2.
Listing 1.2  PL/SQL Block Showing the Use of the dbms_output.put_line Procedure
DECLARE
x NUMBER;
BEGIN
x := 72600;
dbms_output.put_line('The variable X = ');
dbms_output.put_line(x);
END;
/
The dbms_output.put_line() procedure takes exactly one argument and generates a line of text as output from the database server. In order for you to see that line of text, you must tell SQL*Plus to display it. This is done with the SQL*Plus command:
SQL> SET SERVEROUTPUT ON
  1. Type the preceding command now. It needs to be executed only once per session, so you won't need to reissue it unless you exit SQL*Plus and get back in again.
  2. Next, type in the PL/SQL code from Listing 1.2. The resulting output from SQL*Plus should look like that shown below.
    The variable x=
    72600

Note - It is SQL*Plus that prints the server output on the screen for you to see. You must remember to execute the SET SERVEROUTPUT ON command, or you won't see any output. You also can use the SET SERVEROUTPUT OFF command to turn off output when you don't want to see it.

Alternatives to Retyping

Until now, you have been retyping each PL/SQL block as you tried it. If you made a mistake, you had to type the code all over again. There are some alternatives to typing PL/SQL straight into SQL*Plus. Depending on your personal preferences, and on what you are trying to do, there are three basic ways to go about this:
  • Cut and paste from Notepad.
  • Execute a text file using the SQL*Plus @ command.
  • Use the SQL*Plus EDIT command.

The second method makes use of a SQL*Plus command to execute a file. For example, if you have a text file named test.sql with the code from Listing 1.2, you could execute that file by typing this command:The first method involves running Windows Notepad, typing your PL/SQL code (or SQL queries) into it, and then copying and pasting from Notepad into SQL*Plus to execute the desired code. This method is ideal for experimenting with short snippets of PL/SQL code and SQL queries. You can keep several related items in the same text file where you can easily call them up when you want to work on them.
SQL> @c:\a\test
The resulting output would look like:
The variable X =
65400

Note - When you're executing a file, the default file extension is .SQL. SQL*Plus looks for the file first in the default directory and then follows a search path that you can define. How you define this path is operating system–specific and outside the scope of this book. For details, you should consult the SQL*Plus User's Guide and also your operating system documentation.

Executing commands from a file like this is most useful in cases where you are re-creating a stored procedure, function, or database trigger and you have the definition already stored in its own text file.
The third option involves using the SQL*Plus EDIT command to invoke your system's text editor. Under Windows, this will be Notepad unless you have specifically defined a different editor. When you issue the EDIT command, SQL*Plus will launch Notepad and automatically place in it the text of the most recently executed PL/SQL block or SQL statement. See Figure 1.3 for an example of this.
Using the SQL*Plus EDIT command.
After you've brought up Notepad, you can edit the PL/SQL block to your satisfaction and then exit from Notepad, being sure to save the file. When you save your file, SQL*Plus will not immediately reexecute it. It is merely placed in an internal buffer. You must use the / command, by typing / on a line by itself, in order to execute the code you just edited.
Using the EDIT command works well as long as you keep in mind one important thing. SQL*Plus remembers only the most recent SQL statement or PL/SQL block. If you have been working on a PL/SQL block, and you execute just one SQL statement, that statement will replace the PL/SQL block you have been editing.

Caution - Do not allow the SQL*Plus buffer to contain your only copy of a long procedure. It's too easy to enter a SQL command without thinking and wipe out the much longer PL/SQL procedure you have been developing.

Which of these three methods you choose is up to you, and depends in part on your personal preferences. You are likely to find the first method, copying and pasting between Notepad and SQL*Plus, most useful during the first few chapters of this book. As you write larger PL/SQL functions and procedures, you will find yourself gravitating toward keeping each in its own file.

Writing Your First Function

Perhaps one of the most useful things you can do with your knowledge of PL/SQL is to use it to write stored functions and stored procedures. Encapsulating the code you wrote earlier into a stored function enables you to compile it once and store it in the database for future use. The next time you want to run that PL/SQL block, all you need to do is invoke the function. Using SQL*Plus, type in the input code shown in Listing 1.3, which will create a PL/SQL function to return the value that was output by Listing 1.2.
Listing 1.3  The SS_THRESH Function
1: CREATE OR REPLACE FUNCTION ss_thresh
2: RETURN NUMBER AS
3: x NUMBER;
4: BEGIN
5: x := 72600;
6: RETURN x;
7: END;
8: /
Function created
Compare the code in Listing 1.3 to that in Listing 1.2. Notice that the keyword DECLARE has been replaced in lines 1 and 2 by the words CREATE OR REPLACE FUNCTION ss_thresh RETURN NUMBER AS. This will be explained further in Day 3. Also notice that the calls todbms_output.put_line() have been replaced by the RETURN command (line 6), which returns the value of the variable X to the caller. The only output from Listing 1.3 is a confirmation that the function has been successfully created, which is shown in line 9.
Notice that Oracle has created the function. SQL*Plus indicates this by displaying the wordsFunction created.

Finding Compilation Errors

You probably were able to type in the code from Listing 1.3 and create the SS_THRESH function with no errors. However, that might not have been the case. To show you how to deal with an error, Listing 1.4 contains the same code as Listing 1.3, but with one small error.
Listing 1.4  The SS_THRESH Function with an Error
1: CREATE OR REPLACE FUNCTION ss_thresh
2: RETURN NUMBER AS
3: x NUMBER;
4: BEGIN
5: x = 72600;
6: RETURN x;
7: END;
8: /
Warning: Function created with compilation errors.
Unlike most compilers, which will display a listing of errors found in source code, Oracle stores any errors it finds in a database table named USER_ERRORS. If you want to see the specific details, and you may well, you need to retrieve the error listing yourself. Use the SQL*Plus command SHOW ERRORS, as shown in Listing 1.5, to do this.
Listing 1.5  The SHOW ERRORS Command
1: SHOW ERRORS
Errors for FUNCTION SS_THRESH:

LINE/COL ERROR
-------- ---------------------------------------------------------------
5/5 PLS-00103: Encountered the symbol "=" when expecting one of the
following:
:= . ( @ % ;
The symbol ":= was inserted before "=" to continue.
As you can see, the error listing has two columns of output. The first column contains the line number where the error occurred and also the character position within that line. The second column contains the specific error message. In this example, the error occurred in line 5 at the fifth character position. The error message tells you that Oracle encountered an equal sign when it was really expecting something else. That "something else," in this case, is the assignment operator, represented by :=.
Figure 1.4 shows the SQL*Plus screen as it would look after executing Listings 1.4 and 1.5.
Error listing for SS_THRESH.

Tip - Typing = instead of := is a common mistake to make, especially if you also program in other languages that do use = for assignment.

Displaying the Function's Return Value

Now that you have written and compiled the function, it's time to execute it and see the results. The easiest way to do this using SQL*Plus is to issue the following SQL command:
SELECT SS_THRESH FROM DUAL;
SS_THRESH
---------
72600
The SS_THRESH function does not have any parameters, so be sure not to add any parentheses when you call it. In other words, don't use SS_THRESH() because Oracle will return an error. The table DUALis a special Oracle table that always exists, always has exactly one row, and always has exactly one column. It's the perfect table to use when experimenting with functions. Selecting the function from theDUAL table causes the function result to be displayed.

Can Even This Simple Function Be Useful?

The SS_THRESH function is a very simple function, and you might rightly wonder if something so absurdly simple can be useful. The value this function returns is the Social Security Contribution and Benefit Base, a value that changes from year to year. If you were a programmer working on a payroll system and needed to write several queries using this value, you could use a function like this toencapsulate this information. To encapsulate information means to embed it within a function so that values like this don't need to be replicated all through your code, and so that any changes can be made in one central place. There's another benefit to this approach. Your queries become more self-documenting. It's a bit easier to remember six months later what you meant when you see
SELECT * FROM employee_table
WHERE emp_salary > SS_THRESH;
than if you had simply hard-coded the value
SELECT * FROM employee_table
WHERE emp_salary > 72600;

Executing PL/SQL Using Developer 2000's Procedure Builder

Procedure Builder is part of Oracle's Developer 2000 development environment. It allows you to develop and debug PL/SQL program units for use in Developer 2000 applications. With Developer 2000, PL/SQL is used on the client to program the behavior behind the forms, reports, and menus that you develop. You end up with a PL/SQL engine on the client as well as on the server. A nice benefit of this is that Procedure Builder can be used to execute PL/SQL code without having to be connected to a database.

Note - Many of the advanced features discussed later in this book are available only when executing PL/SQL code in the database.

Starting Procedure Builder

If you have Developer 2000 installed, you start Procedure Builder by selecting Start, Programs, Developer 2000 R2.0, Procedure Builder. The opening screen is shown in Figure 1.5 and is divided into three sections.
Procedure Builder's opening screen.
As you can see, the Procedure Builder window is divided into three major parts. The Object Navigator window allows you to navigate through the various program units, PL/SQL libraries, and database objects to which you have access. The other two parts of the display combine to make up the PL/SQL Interpreter window. The top pane is used when debugging PL/SQL code and shows the code being debugged. The bottom pane is where you can type in and execute ad-hoc PL/SQL blocks.

New Term - PL/SQL may be used to write procedures, functions, package bodies, package types, and triggers. These constructs are referred to as program units.

Using Interactive PL/SQL

The PL/SQL interpreter allows you to enter a PL/SQL anonymous block and have it executed. The small block in Listing 1.2, that you typed in earlier, is one such anonymous block. You can type that block into Procedure Builder and execute it, but first you need to make one small change. The code shown in Listing 1.2 contains the following two calls to DBMS_OUTPUT:
dbms_output.put_line('The variable X = ');
dbms_output.put_line(x);
DBMS_OUTPUT is a package that only exists within the database server. Procedure Builder will return errors if you try to execute the code as it stands now. Fortunately, Oracle has a package similar toDBMS_OUTPUT that can be used in its place when you are executing code on a client. The name of that package is TEXT_IO, and it also contains an entry point named PUT_LINE. Take the code shown in Listing 1.2, replace the calls to DBMS_OUTPUT.PUT_LINE with TEXT_IO.PUT_LINE, and you have the code shown in Listing 1.6. This code will run from Procedure Builder.
Listing 1.6  A PL/SQL Block Using TEXT_IO That Will Run from Procedure Builder
DECLARE
x INTEGER;
BEGIN
x := 72600;
text_io.put_line('The variable X = ');
text_io.put_line(x);
END;
Now, you can take this code and type it into Procedure Builder's PL/SQL Interpreter. The interpreter will automatically execute the block when you finish entering the last line. The results will look like the following:
The variable X =
72600
Procedure Builder has been written specifically to work with PL/SQL. Unlike SQL*Plus, you do not need to enter a forward-slash to tell Procedure Builder that you are done entering a block of PL/SQL.

Creating the SS_THRESH Function

Creating a function (or any other program unit such as a procedure or package) using Procedure Builder requires a bit more than just typing the CREATE FUNCTION statement into the interpreter. To create a function, you need to tell Procedure Builder that you want to create a new program unit. Do this by selecting the File, New, Program Unit menu option. You will see the dialog box shown in Figure 1.6.
Creating a New Program Unit.
This dialog contains radio buttons allowing you to choose the type of program unit that you are creating and also contains a textbox for the program unit's name. Choose Function, type the name SS_THRESHinto the textbox, and click OK. You will see a screen similar to that shown in Figure 1.7.
Entering the code for SS_THRESH.
Figure 1.7 shows the function with the code already written. Of course, Procedure Builder does not write the code for you. When Procedure Builder opens this window, it places a skeleton function in the textbox. You have to fill in the details. When you get the code entered the way that you want it, click the Compile button to compile it, and then click the Close button to close the window.
To execute the function that you just created, type the following statement into the PL/SQL interpreter:
TEXT_IO.PUT_LINE(SS_THRESH);
When you execute this statement, Procedure Builder will execute the function and display the following results:
72600

Connecting to a Database

In addition to creating PL/SQL program units on the client, Procedure Builder can also be used to create and execute program units in a database. To do this, you first need to connect to a database. Use the File, Connect menu option to connect to a database. Once you've logged in, you will be able to browse database program units using the Object Navigator. Figure 1.8 shows the program units owned by the user named JEFF.
Program units in the JEFF schema.
To create a stored function or other program unit in the database, follow these steps:
  1. Click to highlight the Stored Program Units entry under the user's name.
  2. Click the Create Toolbar button.
  3. Proceed as you would when creating a local program unit.
Except for having to choose the schema, the process for creating a PL/SQL function in the database is the same as for creating one locally.

Using SQLPlus Worksheet

If you have Enterprise Manager available, consider using SQLPlus Worksheet for the examples in this book. SQLPlus Worksheet is completely compatible with SQL*Plus, and can be used for all the examples in this book. The advantage that SQL*Plus worksheet has over SQL*Plus is in the interface. Rather than type in large blocks of code one line at a time, you can use a text editor-like interface. After you get the code entered the way that you want it, you can click a toolbar button to execute it.

Executing a PL/SQL Block Using SQLPlus Worksheet

Figure 1.9 shows the SQLPlus Worksheet.
The SQLPlus Worksheet.

Summary

In this chapter you learned a little about PL/SQL, what it is, and why it is used. You know that PL/SQL is Oracle's procedural language extension to SQL, and that you can use it to write procedures and functions that execute on the server.
This chapter also explains the relationship between PL/SQL, SQL, and SQL*Plus. This should give you a good grasp of how PL/SQL fits into the larger Oracle picture.
You wrote your first PL/SQL stored function, which should give you a good feel for the mechanics of programming with PL/SQL.
SQL*Plus is the tool used throughout this book for PL/SQL code examples. SQLPlus Worksheet and Procedure Builder are two other tools that may also be used to write and execute PL/SQL code.
Q&A As you can see, the SQLPlus Worksheet screen is divided into two halves. The upper half is used for the entry and editing of SQL statements and PL/SQL blocks. The lower half is used to display output. The execute toolbar button, the one with the lightning bolt, is used to execute the statements that you have entered in the upper pane.
There are two ways to use SQLPlus Worksheet to execute commands from a file. One way is to use the File, Open menu option to load the contents of a file into the upper pane, and then click the lightning bolt button. The other way is to use the Worksheet, Run Local Script menu option.

Q & A

  1. Where does PL/SQL code execution take place?
  1. Usually, execution takes place at the server level. For the examples in this book, that will always be the case. Some Oracle products, such as Developer/2000, also have the capability to execute PL/SQL blocks locally on the client machine.
  • Can I write a complete application with PL/SQL?

    1. Generally speaking you cannot, at least not as most people envision an application. For an end-user application, you would still need a tool, such as PowerBuilder or Developer/2000, in order to design screens and generate reports.
    1. I executed some PL/SQL code which used dbms_output.put_line() to print some data, but I didn't see anything. How come?
    1. You probably forgot to enable the server output option. Use this SQL*Plus command:
      SET SERVEROUTPUT ON
      If you forget that, your PL/SQL output goes to oblivion.
    1. I am using Procedure Builder, and I get errors when I try to execute code that contains calls to dbms_output.put_line(). Why?
    1. When you use Procedure Builder to execute code locally, you must use text_io.put_linerather than dbms_output.put_line(). If you are using Procedure Builder, and you have connected to a database, you will be able to execute calls to dbms_output.put_line(), but you won't see the results.

    Workshop

    Use the following workshop to test your comprehension of this chapter and put what you've learned into practice. You'll find the answers to the quiz and exercises in Appendix A, "Answers."

    Quiz

    1. What tells SQL*Plus to send your PL/SQL code to the Oracle database for execution?
    2. What is the fundamental basis of all PL/SQL code?
    3. List an advantage of pushing program logic up to the server level.
    4. Name three Oracle products that use PL/SQL.
    5. What command tells SQL*Plus to display PL/SQL output?
    6. Name at least two options for managing your PL/SQL source code.

    Exercises

    1. If you didn't encounter any errors when compiling your first function, try putting some in on purpose. Then try out the SHOW ERRORS command.
    2. Try each of the three ways mentioned in the chapter for managing your source code. Become familiar with the SQL*Plus EDIT command. Try using the @ command or the START command to execute your PL/SQL code from a text file.

    This article is brought to you by Sams Publishing, publisher of Sams Teach Yourself PL/SQL in 21 Days, Second Edition.

    No comments:

    Post a Comment

    Labels

    $100 1 GHz processor 1.2 GHz quad-core Processor 1.6 GHz Quad-core CPU 10 inches 10000 to 20000 1080p 11 inches 12 inches 16GB Transcend MicroSDHC Card 2 GB RAM 20 Inch Led Monitor 2013 idea valentineday 2013 Promise Day Poems 2013 Top 10 Valentines Day Ideas 2013 VALENTINES DAY 308 32 MP camera phablet 32GB MicroSD Card 3809 3D Games 3G 3g tablet 4.5-inch qHD display 4.65-inch Super AMOLED Plus display 400Gbps 4G 4G LTE 5-inch 5-inch phablet 5.7-inch phablet 5000 To 10000 596 7 inch android tab 7 inches 7-inch capacitive touchscreen 8 inches 9 inches A1000 A116 Canvas HD a58 A6X processor AC/ Coolers Accessories Accessories for her Accessories for him according Ace Acer Acer Aspire S3-951 Acer Aspire S3-951 India Acer Aspire S3-951 price in india Acer Ferrari Motion Wireless Laser Mouse Acer Laptops Acer Laser Mouse Acer Liquid C1 Acer Liquid C1 India Acer Liquid C1 price in india Acer Liquid E1 Acer Liquid E1 India Acer Liquid E1 price in india Acer Mobiles Actilife Malt Flavour Daily Nutrition Ad Addons AdexMart Adidas Floters Adidas l39472 Floters Advantages of flexible batteries Advik 2.0 Desktop Speaker AD-SP1510 afp Ainol Ainol Novo 10 Hero II 10 inch tablet Ainol Novo 10 Hero II Price Ainol Novo 10 Hero II price In India Ainol Novo 10 Hero II Review Ainol Novo 7 Venus Features Ainol Novo 7 Venus Price Ainol Novo 7 Venus price in india Ainol Novo 7 Venus Review Ainol Novo 8 Dream 8 Inch Tab Ainol Novo 8 Dream Features Ainol Novo 8 Dream Price In India Ainol Novo 8 Dream Review Ainol Novo 9 Spark 9 Inch Tablet Ainol Novo 9 Spark Price Ainol Novo 9 Spark price In India Ainol Novo 9 Spark Review Ainol Novo 9 Spark Tablet Airtel DTH Recharge Airtel Offers Airtyme Diego 3G Calling Tablet Airtyme Diego 3G Calling Tablet Price Airtyme Diego 3G Calling Tablet Price In India Airtyme Diego 3G Calling Tablet Review Ajax alcatel alcatel lucent Alcatel Mobiles Alcatel One Touch Fire Alcatel OT 4005D Alcatel OT 4005D India Alcatel OT 4005D price in india Alcatel OT 4010E Alcatel OT 4010E India Alcatel OT 4010E price in india Alcatel OT 5020E Alcatel OT 5020E India Alcatel OT 5020E price in india Alcatel specifications All Allschoolstuff AllSchoolStuff Coupons alpha Alpha A58 Amazon Amazon 10 percent discount on phones Amazon 15 percent discount on cameras Ambrane Ambrane Power Bank Amtrak Andorid 4.0 Ice Cream Sandwich Android Android 2.3 android 4.0 Android 4.0 (ICS) smartphone Android 4.0 ICS android 4.1 android 4.1 jelly bean Android 4.2 Android 4.2.2 Android 4.3 Android 4.3 for Google's edition of Samsung Galaxy S4 Android 4.3 leaked screenshots Android Apps Android Basics Android Emulator Android Examples Android ICS Android ICS budget smartphone Android jelly bean Android Native Apps Android SDK Android Security Android Smartphones Android Tips Android Tutorials Anklets Announcement Antivirus anytimeretail AOC LE19A1221/61 AOC LE19A1221/61 LED Monitor AOC LE19A1221/61 Price AOC LE19A1221/61 Price In India app App News Apparels Apparels for her Apparels for him Apple apple competitor Apple iPhone Apple iPhone 5 Apple Mac OS X Apple Mobile Phones appliances Applications APPS Appstore Archos Archos 35 Archos 35 India Archos 35 price in india Archos 48 Platinum Archos 48 Platinum India Archos 48 Platinum price in india Archos 52 Titanium Archos 52 Titanium India Archos 52 Titanium price in india Archos Mobiles Aryan Organic White Chick Peas Ascend Mate ASP.NET ASP.NET Grid View Aspen Asus Asus MeMO Pad Asus MeMo Pad 10 Asus MeMo Pad 10 India Asus MeMo Pad 10 price in india Asus MeMo Pad 10 Tablets Asus MeMO Pad full specifications Asus MeMo Pad ME172V Asus MeMo Pad ME172V India Asus MeMo Pad ME172V price in india Asus MeMo Pad ME172V Tablets Asus MeMO Pad price ATamp;T ativ samsung smart pc Audi A7 AutoCompleteTextView Avast Antivirus Azafran Extra Virgin Sunflower Oil Baby Carrier Baby Clothing Baby Diapers Baby stuffs Baby Toys Babyoye Coupons Backpacks Bags for her Bagskart balaji-motion Basicslife Basicslife Coupons Bata Footin Sandals Battery Life Batting Gloves beats audio Beauty Beetel Beginner Developers Belkin Compact Keyboard K100 Below 5000 below 5000 tablet BenQ BL2201PT 22 Inch LED Monitor BenQ BL2201PT Features BenQ BL2201PT Price BenQ BL2201PT Price In India BenQ BL2201PT Review BenQ BL2411PT 24 INch Led Monitor BenQ BL2411PT Features BenQ BL2411PT Price BenQ BL2411PT Price In India BenQ BL2411PT Review best Best Android Apps Best Mobile Phones Best of the web best online price Best Poem for Promise Day 2013 Best Websites bestonlinedeals Bestylish Bestylish Coupons Beverages Big Bazaar April Utsav Bikes BlackBerry BlackBerry Mobile Phones BlackBerry Z10 block Blogger Bloging blogspot BLU Mobiles BLU Quattro 4.5 HD BLU Quattro 4.5 HD India BLU Quattro 4.5 HD price in india BLU Quattro 5.7 HD BLU Quattro 5.7 HD India BLU Quattro 5.7 HD price in india Bluetooth headsets board Bollywood Bombay Dyeing Bath Towels Book/ Papers books Books amp; CDs Books amp; Music Bracelets brand Brazil breaking Broad Band browser BSNL Data Card BSNL TTA Practice Workbook budget phone budget phones in India budget smartphone budget smartphones budget tablet budget tablets Bus Tickets Business business phone buy buy online Buy Samsung Galaxy Core online Buying Guides Byond B51 Byond B54 Byond B63 Byond B65 Byond B65 specification byond mobiles Byond Tech Phablet PIII Cabana Bath Towels Cabana Hand Towels Cabarelli Premium Wallets CakePHP Calendar Plugins Camcoders Camera Camera Accessories camera app camera quality cameras Canon Canon A2300 Digital Camera Canon Digital Cameras Canon EOS 70D 20 Megapixel DSLR Canon EOS 70D Price Canon EOS 70D Price in India Canon EOS 70D Review Canon IXUS 135 India Canon IXUS 135 Price Canon IXUS 135 Price in INDIA Canon PowerShot A2500 India Canon PowerShot A2500 Price Canon PowerShot A2500 Price in INDIA canonical canvas Canvas 3 Canvas 3 Features Canvas 3 Micromax Canvas 3 price Canvas 3 Specifications Car Parking Reverse Sensors Carrier amp; Education cars Casual Cross Pockets Woven Cargo Shorts Cavallini Deodorants CCIT CDN Celkon Celkon A119Q Signature HD price in India Celkon A79 Celkon A79 India Celkon A79 price in india Celkon A8+ Celkon A8+ Price Celkon A8+ Price In India Celkon A8+ Review Celkon A87 Celkon A87 India Celkon A87 price in india Celkon A9+ price in India Celkon CT910 Tab Celkon CT910 Tab India Celkon CT910 Tab price in india Celkon CT910 Tab Tablets Celkon Mobiles Celkon Signature A107 One price in India Celkon Signature HD A118 Celkon Signature HD A118 price Celkon Signature HD A118 price in India Celkon Signature HD A118 specifications Cenizas Hand Towels censor Chaining Champion cheating Chicco Aftersun Milk Lotion china chinese leak chrome + chrome os Chromebook chromebook pixel Classmate Octane Gel Pens Client Side Validation Clothing CMS CodeIgniter CodeProject CoffeeScript college Colorfly CT132 13.3quot; Tablet Colorfly CT132 Price Colorfly CT132 Price In India Colorfly CT132 Review common compact companion handset company Comparision Comparisions compass Computer Accessories Computer Parts computers Concept Confectionery Contacts Contacts API 2.0 Content Provider ContentResolver CONTESTS Context Menu control Cool Tips and Tricks Coolpix Coolpix A Coolpix P330 Corning Cosmetics Cosmetics amp;Accessories Costa Coffee Cotton Designer Bed Sheets Cotton Double Bedsheets Cotton Stretch Briefs could country coverage.ec cPanel Craftsvilla crazeal Cre Loaded Create Collage Cricket Bails Cricket Bats Cricket Soft Balls Cricket Stumps cromaretail Crystal Nonstick Cookwares Crystal Premium Nonstick Cookware css CSS Selectors Cubic Zircon Mangalsutra curl Curved Glass customer Cute Valentine’s Day Ideas Cute Walk Clogs Daily Deal Sites Daily Meals Daily Use Products dailydeals Dalvik error format Data Card Data storage Database Datacard Datacards Date Picker Dating sites Davidoff Cool Water EDT De Deal of Day deals delhi Dell Dell Inspiron Ultra N5423 core i3 Laptop Dell Inspiron Ultra N5423 Price Dell Inspiron Ultra N5423 Price In India Dell Inspiron Ultra N5423 Review Dell XPS Denim EDT 100ml Deodrants amp; Perfume design designer Designer Analog Watch Designer Wine Glass Devante Developer Tutorial Developers Development device Digisol DG-BA3370 Digisol DG-BA3370 3G datacard Price In India Digisol DG-BA3370 3g Datacard Review Digisol DG-BA3370 Price Digital Camera Pouch Digital Camers and Camcorders Digital Clock Digital Photography Digital SLR Camera director Discount Coupons Dish Network DishaPublication Coupons Disney School Bags Disney Shoes Disney Toddler School Bags display displays Diva Designer Kurtis DMCA DNA DNA Base Sequence DNA Fingerprinting DNA structure DogSpot Domain Domestic Flights Dominos Pizza Coupons Downloads Dr. Gene Digital Thermometer DropDown DropDownList Drupal DSLRs dual core dual sim phone Dual SIM tablet dual-core processor dual-core processor phablet dual-core processor smartphone dual-sim Dynamic UI e choice E-Commerce Plugins Earn Money Earrings ebay eBay Coupons Ebooks Eclipse Eclipse Configuration Edu-Slide i1017 educational egypt egypt protest Electronics Electronics amp; Appliances Email Marketing engineering jobs english Envy Half Sleeves Blue Shirt Equipments Error Etab Connect etab connect price Etab Connect specifications Eureka Forbes Aquasure Xtra Tuff Water Purifier Eureka Forbes Water Purifier Event namespacing Events ExerPedal Mini Bike Exmor RS External Hard Disks exynos 5410 exynos octa eye tracking ezoneonline eZoneOnline Coupons Fabiano Appliances Induction Cooker Fablet F2 Fablet F2 specs Fablet F3 Fablet F3 specs FabLooms Carpets FabLooms Reversible Bath Mat facebook Facebook Phone facebook tool bar faculty FAEA F1 Features FAEA F1 Price FAEA F1 Price In India FAEA F1 Review fashion Fashion Accessories Fashion Garments fashionandyou Fashionara Fashionara Coupons Fast Foods featimg feature phone featured Featured Pots featurephone features february Feed button forms Fermai Men 80265 Fermai Men 80625 Fermani Men 1524 Fermani Men 6046 Fermani Men 7731 Fermani Men 7847 Fermani Men 882 Fermani Men 991 Fermani Men SURVIVOR Fevikwik Instant Adhesive Fiat Linea film Fire Fox Firefos OS Firefox Firefox OS Firefox OS based smartphone Firefox OS features Firstcry FirstCry Coupons Flexible batteries Flexible Glass flipkart Flipkart Coupons Floating Touch Floyd Opulent Sunglasses Fly fonepad Food amp; Drinks Food Deals Footwear Footwears for her Footwears for him Frameworks france telecom FREE Free Antivirus Free Driver Download Freebie Freebies Freecharge Coupons Freecultr Freeware friday fuel charger FujiFilm FujiFilm Digital Cameras Fujifilm FinePix S6800 India Fujifilm FinePix S6800 Price Fujifilm FinePix S6800 Price in INDIA Fujifilm X-M1 Fujifilm X-M1 Price Fujifilm X-M1 Price In India Fujifilm X-M1 Revealed Fujifilm X-M1 Review Full HD display smartphone full specifications Furniture and Accesories futurebazar Gadget Reviews gadgets galaxy Galaxy Ace Galaxy core Galaxy Note 8.0 galaxy s 4 galaxy s flagship Galaxy S IV Galaxy S4 Gallery game errors gamestick console kickstarter Gamestick features gamestick kickstarter gamestick price Gaming Garnier Deodorants Gas Saver Nets General Geo Location Gesture Control gesture recognition Gifts and Choclates Gingerbread Gionee Gionee CTRL V4 Gionee CTRL V4 price Gionee CTRL V4 Price In India Gionee CTRL V4 Review Gionee CTRL V4 specifications Gionee CTRL V4 Specs Gionee Dream D1 Gionee Dream D1 full specifications Gionee Dream D1 India Gionee Dream D1 price in india Gionee Elife E6 Gionee Elife E6 price Gionee Elife E6 specifications Gionee launch in India Gionee Mobiles Gmail good graphic design Goodlife Coupons goodslife Google Google Ads Google Adsense Google Analytics Google Chrome Google Chrome Extensions Google Docs google drive Google Glass Google Play Google Play Books google play store Google Plus Google Services Google Site Clinic Google Stores Google Traffic Gorilla Glass gradiente eletronica Grand Memo Graphic Design graphics Green PHOLED Green Tech Greendust Coupons GridView Hackintosh halo value Handloomwala Sofa Covers hands-on Hang Designer Door Curtain happy Happy Promise Day 2013 Poem Happy Promise Day 2013 Poems Happy Promise Day Poems in English Hardware harvard harvard-university HCL HD HD A119Q HD display Head Headphones Health Accesories Health amp; Beauty Health amp; Fitness Here Maps Home Home amp; Accessories Home amp; Kitchen Home Appliances Home Decor Home Furnitures Home Supplies HomeShop18 Homeshop18 Coupons hotdeals How flexible batteries work How to How to use jQuery HP HP Laptops HP Optical Mouses HP Pavilion 14 Chromebook HP Pavilion 14 Chromebook India HP Pavilion 14 Chromebook price in india htaccess HTC HTC Butterfly HTC desire 200 HTC desire 200 price HTC desire 200 specifications HTC Desire 600 dual SIM HTC Desire 600 features HTC Desire 600 launched in India HTC desire 600 online availability HTC Desire 600 price in India 2013 4th July HTC Desire 600 specifications HTC Desire XC HTC Desire XC Price HTC Desire XC Price IN India HTC Desire XC Review HTC Mobiles HTC Myst HTC One htc one x HTC Sense HTC Tiara HTC Tiara India HTC Tiara price in india Html Huawei Huawei Ascend G330 Huawei Ascend G600 Huawei Ascend Mate Huawei Ascend Mate online Huawei Ascend Mate price Huawei Ascend Mate specifications Huawei Ascend P2 Huawei Ascend P2 India Huawei Ascend P2 price in india Huawei Ascend P6 Huawei Ascend P6 release date Huawei Ascend P6 specifications Huawei Ascend P6 videos Huawei Ascend Y300 Huawei Ascend Y300 India Huawei Ascend Y300 price in india Huawei Mobiles Hushbabies HushBabies Coupons Hyperlink Hyundai T7 Hyundai T7 India Hyundai T7 price in india Hyundai T7 Tablets iBall iBall Slide 7334i iBall Slide 7334i Price iBall Slide 7334i Price In India iBall Slide 7334i Review iBall Slide i6012 iBall Slide i6012 India iBall Slide i6012 price in india iBall Slide i6012 Tablets ice Idea Mobiles Idea Zeal 3G Idea Zeal 3G India Idea Zeal 3G price in india Image Effects Image Gallery Image Map Plugins Image Plugins Images ImageSwitcher ImageView imei Improved Camera App Inco Mirror Inco Mirror India Inco Mirror price in india Inco Mobiles india india-wide IndiaTimes Indiatimes Midnight Sale Indiatimes Shopping Coupons infibeam Infibeam Coupons Infibeam Magic Box Deals INFO information informative Infrared Forehead Thermometer Inkfruit Inspiration Instagram Plugins Instal Stock Android on HTC One Instal Stock Android on Samsung Galaxy S4 INTEL intel atom Intel Atom Z2420 Intel Atom Z2580 Intel Inside Intel Xolo X910 Mobile Phone Interchangeable Lens internet internet marketing Internet Updates interview Interview Questions Intex Intex Aqua i5 Intex Aqua i5 lowest price Intex Aqua i5 price Intex Aqua i5 price in India Intex Aqua i5 specifications Intex Aqua Style Intex Aqua Style full specifications Intex Aqua Style India Intex Aqua Style price in india Intex iTab Intex Mobiles Intex phablet Investors iOS iOS 6.1 IP Address IP address information using jQuery iPad iPad 4 iPad 4 price and availability in India iPad 4 with 128GB iPad 4 with Retina Display iPads Iphone iPhone 5 iphone apps ipods Iris 430 budget smartphone Iris 430 price in india Iris 430 specifications Iris 502 Italian Optical Frames iWatch Jabong Jaipan Mango Shaker Jaipur Kurtis Jaipuri Printed Summer Blanket Japan Java Based OS Javascript jdk1.6.0_21 jeetendra Jeggings Jelly Bean jelly bean tablet JellyBean JellyBean 4.2 Jewellery Jewellery and Gold coins Jiayu Jiayu G4 Jiayu G4 online availability Jiayu G4 price in Inda Jiayu G4 specifications job Jockey Briefs Jockey Innerwears Jockey Physical Man EDT 100ml John Carry Trousers Joomla Joomla Customization Josh Fortune HD Josh Fortune HD Price Josh Fortune HD Price In India Josh Fortune HD Review jquery jQuery 1.7 jQuery 1.9 jQuery 2.0 jQuery Ajax jQuery and Ajax jQuery Array jQuery Calendar Plugins jQuery CDN jQuery Chaining jQuery Clock Plugin jQuery Code Examples Jquery Code Snippets jQuery Codes jQuery DatePicker jQuery Debugging jQuery Digital Clock jQuery Error jQuery Events jQuery For Beginners jQuery Instagram Plugins jQuery is not defined jQuery Mistakes jQuery Modal Plugins jQuery News jQuery News ticker plugin jQuery Plugin 2013 jQuery Plugins jQuery Popup Plugins jQuery Selectors jQuery Source Map jQuery Tips jQuery Training jQuery UI jQuery UI DatePicker jQuery Validation jQuery webticker plugin jQuery With Ajax jQuery With ASP.NET jQuery YouTube jUnit Just For Men Shampoo Karbonn Karbonn A1 Plus Karbonn A12 Karbonn A12 full specifications Karbonn A12 online Karbonn A30 Karbonn K75 Karbonn K75 India Karbonn K75 price in india Karbonn Mobile Phones karbonn Mobiles Karbonn Smart Tab 8 Velox Karbonn Titanium Karbonn Titanium S6 Karbonn Titanium S6 india Karbonn Titanium S6 Price Karbonn Titanium S6 Price In india Karbonn Titanium S6 Review Karbonn Titanium S6 specifications Karbonn Titanium S9 Karbonn Titanium S9 Features Karbonn Titanium S9 launch in India Karbonn Titanium S9 Price Karbonn Titanium S9 price in India Karbonn Titanium S9 Review Karbonn Titanium S9 specifications Karbonn Titanium S9 vs Karbonn Titanium S5 Katrina Kaif Kids Kids amp; Baby Kids amp; Teens Kids/Teens king kitchen Kitchenware kobian Kobian Mercury mTAB Lite Kobian Mercury mTAB Lite price Kobian Mercury mTAB Lite specifications Kobo Arc Kobo Arc India Kobo Arc price in india Kobo Arc Tablets Konex Chess Board Konka Expose Konka Tango Konka Tuxedo Konka Viva Korean Kurtas Landmark Gift Vouchers Language Translate Plugins laptop Laptop / Tablet Hybrid Laptop Accessories Laptop Bags Laptop Sleeves laptops Laser Printer launch launch in India lava Lava E-Tab Connect Lava E-Tab Connect India Lava E-Tab Connect price in india Lava E-Tab Connect Tablets Lava E-tab Z7S EDGE Lava E-tab Z7S EDGE India Lava E-tab Z7S EDGE price in india Lava E-tab Z7S EDGE Tablets lava Etab Connect lava Iris 430 Lava Iris 430 India Lava Iris 430 price in india Lava Iris 502 Lava Iris 502 India Lava Iris 502 price in india Lava Iris 504Q Lava Iris 504Q availability Lava Iris 504Q online Lava Iris 504Q price Lava Iris 504Q Price in India Lava Iris 504Q review Lava Iris 504Q specifications LAVA Mobiles LCD Televisions leak Learn jQuery Leather Wallets Lemon Lemon Mobiles Lemon P100 Note Lemon P100 Note India Lemon P100 Note price in india Lenovo Lenovo A1000 Lenovo A1000 India Lenovo A1000 price in india Lenovo A1000 Tablets Lenovo A3000 Lenovo A3000 India Lenovo A3000 price in india Lenovo A3000 Tablets Lenovo IdeaPhone S890 Lenovo IdeaPhone S890 India Lenovo IdeaPhone S890 price in india Lenovo Mobiles Lenovo S6000 Lenovo S6000 India Lenovo S6000 price in india Lenovo S6000 Tablets Lenovo S820 Lenovo S920 Lens and Sunglasses Lenskart Leonardo Mango Premium Pickle LG LG 20EN33TS 19.5 INch LED Monitor LG 20EN33TS Price LG 20EN33TS Price In India LG 20EN33TS Review LG 22EN33T LG 22EN33T 21.5 Inch LED Monitor LG 22EN33T Price LG 22EN33T price In India LG Google Nexus 4 Mobile Phone LG MH2042DW 20 Litre Stylish Grill Microwave Oven LG MH2042DW Price LG MH2042DW Price In India LG MH2042DW Review LG Mobile Phones LG Mobiles LG Nexus 4 Mobile Phone LG Optimus LG Optimus F5 LG Optimus F5 India LG Optimus F5 price in india LG Optimus G Pro LG Optimus G Pro india LG Optimus G Pro launch in India LG Optimus G Pro price in India LG Optimus G Pro review LG Optimus G Pro specifications LG Optimus L3 II LG Optimus L3 II India LG Optimus L3 II price in india LG Optimus L4 II Dual LG Optimus L4 II Dual launch in India LG Optimus L4 II Dual price in India LG Optimus L4 II Dual specifications LG Optimus L5 II LG Optimus L5 II India LG Optimus L5 II price in india LG Optimus L7 II Dual LG Optimus L7 II Dual India LG Optimus L7 II Dual price in india LG Optimus L9 P765 lightest link error linux ListView LiveSight Localhost Logitech Universal Remote Harmony 200 low cost phablet lowest price in indai LTE Lumia Lumia 520 Lumia 520 price Lumia 520 specifications Luxury mac Mac on Windows madhya pradesh Magazine magento maharashtra Makemytrip Coupons MakeMyTrip Travel Vouchers Mango Premium Pickle Map Marker Plugins March 14 Galaxy S4 launch March 14 XOLO launch Market Cap Market leader Masticart Masticart Coupons Matrix Maxtouuch Maybelline Baby Lips Maybelline BB Cream Maybelline Colossal Kajal medical MeMO Pad full specifications MeMO Pad ME172V MeMO Pad price in India MemoryCards Men Mens Apparel Mice and Keyboards Micromax Micromax A35 Bolt Micromax A35 Bolt full specifications Micromax A35 Bolt price in india Micromax A89 Ninja full specifications Micromax A89 Ninja launch date Micromax A89 Ninja price in indai Micromax Bolt series Micromax Canvas Micromax Canvas 3 Micromax Canvas 3 Features Micromax Canvas 3 Price Micromax Canvas 3 Price In India Micromax Canvas 4 Micromax Canvas 4 expected price Micromax canvas 4 images Micromax Canvas 4 leaked pictures Micromax Canvas 4 leaked specifications Micromax Canvas 4 preorder Micromax Canvas 4 price Micromax canvas 4 release date Micromax Canvas 4 specifications Micromax Canvas A92 Lite Micromax Canvas A92 Lite online Micromax Canvas A92 Lite pre-order Micromax Canvas A92 Lite price Micromax Canvas A92 Lite specifications Micromax Canvas HD A116 Micromax Canvas HD A116 Mobile Phone Micromax Funbook P600 Micromax Mobile Phones Micromax Mobiles micromax ninja Micromax Ninja A89 Micromax tablet microsoft Microsoft Bluetooth Keyboards Microsoft Bluetooth Mobile 5000 Keyboard Microsoft Office 2013 Microsoft Stores in India Microsoft Surface Microsoft Windows Microsoft windows stores in India Microwave Oven midc Middaysale Coupons Middaysales Milleramp;Schweizer Shirts minister Mirchimart Coupons Miscellaneous Mobile Mobile Accesories Mobile Accessories mobile charge Mobile Phones Mobile Prices in india Mobile Recharge mobile roaming charges Mobile World Congress Mobilephones Mobiles mobilestore Modal Window Modal Window Plugin Money Making Monitors Morphy Richards Hand Blender HB-05 Morphy Richards Hand Blenders Mortein Power Gard Power Booster motion Motorola MP3 Players MSI mtk Multiple Categories Music Players muslim mwc MWC 2013 mwc2013 Myntra Myntra Coupons Myntra Mid Season Sale Mysore Rose Soap Mysql Myst naaptol Nabi Nakshatra Style Nose Rings NameCheap ncert Necklace Sets Necklaces netherlands network New Project new technologies in gaming News nex-3n nexus Nikon Nikon Coolpix Nikon Coolpix L27 India Nikon Coolpix L27 Price Nikon Coolpix L27 Price in INDIA Nikon D3100 14MP Digital SLR Camera Nikon D7100 India Nikon D7100 Price Nikon D7100 Price in INDIA Nikon Digital Cameras Nilkamal Computer Table Nilkamal Leo Computer Table Nissan Nissan Micra Active Ex Showroom Nissan Micra Active Hatchback Nissan Micra Active INdia Nissan Micra Active Price Nissan Micra Active price In India Nissan Micra Active Review Nokia Nokia 105 Nokia 105 India Nokia 105 price in india Nokia 301 Nokia 301 India Nokia 301 price in india Nokia Asha Nokia Asha 210 Nokia Asha 210 features Nokia Asha 210 pre-order Nokia Asha 210 price in India Nokia Asha 210 specifications Nokia Asha 210 video Nokia Asha 311 Mobile Phone nokia asha 501 Nokia Asha 501 critic review Nokia Asha 501 full specifications Nokia Asha 501 launch in India Nokia Asha 501 online Nokia Asha 501 online availabily Samsung Galaxy Star Duos Nokia Asha 501 pre-order Nokia Asha 501 preorder Nokia Asha 501 price Nokia Asha 501 price in India Nokia Asha 501 specifications Nokia Lumia 520 Nokia Lumia 520 price Nokia Lumia 520 specifications Nokia Lumia 720 Mobile Phone Nokia Lumia 920 Mobile Phone Nokia Maps Nokia Mobile Phones Nokia Mobiles Nonstick Cookwares Nostra Casual Polo T-Shirt Note 510 note II Notebook Novels Nugen AND 5 Nugen AND 5 Price Nugen AND 5 Price In India Nugen AND 5 Review nVidia Nvidia GeForce 302.82 nvidia tegra 4 nvidia tegra 4 chimera computational photography nvidia tegra 4i NXI Offers on Amazon India official Olympus Olympus Digital Cameras Olympus Stylus XZ-10 India Olympus Stylus XZ-10 Price Olympus Stylus XZ-10 Price in INDIA One Touch Snap One Touch Snap LTE Onida ONIDA KYT005 Dual Sim ONIDA KYT005 Price ONIDA KYT005 Price In India ONIDA KYT005 Review Online Online Air Ticket Sites Online Business online collaboration tool Online Tips open source operating system Oppo Find 5 Oppo Find 5 mini Oppo Find 5 price in India Oppo Find 6 Oppo FInd 7 Oppo Find 7 launch Oppo FInd 7 specifications optical link' OptiContrast Optimus Optimus F Optimus F5 Optimus F7 Optimus L7 II Dual features Optimus L7 II Dual launch date Optimus L7 II Dual price Optimus L7 II Dual specifications Options Menu orange Orkia MP3 Player Orpat Steam Iron OEI-607 Orpat Steam Irons OS Osia Italia Shirts Other Others Outdoor outlook Palm Panasonic Panasonic Digital Cameras Panasonic Hair Dryer EH-ND13 Panasonic Ivory Split AC Panasonic Lumix DMC-F5 14 Megapixel Camera Panasonic Lumix DMC-F5 price Panasonic Lumix DMC-F5 Price In India Panasonic Lumix DMC-F5 Review Panasonic Lumix DMC-LZ20 Digital Camera Pantech Discover Pantech Discover India Pantech Discover price in india Pantech Mobiles Park Avenue Grooming Kit Parse HTML Parse JSON Parse XML Payment Module Paypal PC/CONSOLE PCBC Duffle Bags Pebble Smartwatch Pebble Smartwatch Price Pebble Smartwatch Price In India Pebble Smartwatch Review Pendants PenDrives Pens/Pencils pepperfry Pepperfry Coupons Pepsodent Whitening Toothpaste Performance Perfumes personal care Personalized Products phablet phablets Philips Bluetooth Mono Headset SHB1400 Philips Computer Speakers Philips Hair Dryer HP4940 Philips Hair Dryers Philips Home Theater HTS2400 Philips Micro Hi-Fi System DCD132 phone strap phone strap 2 phone strap 2 wx06a Photo Gallery Photo Gallery Plugins Photo Slideshow photos Photoshop PHP PHP Developers PHP Interview Questions physical Picker Views Pilot run Pinterest Layout Plugin Pinterest Plugins Pizza Hut Coupon Codes Pizza Hut Coupons PL/SQL plastic Play Store Poem for Valentine Promise Day poems Poems on Promise Day Point-and-Shoot Polaroid Police Men Deodorants Polo Club Travel Bags pop portable charger portable mobile charger portable usb charger Power Bank AP4000A PowerTrekk portable charger ppi pradesh Precious Metals Premium Nonstick Cookwares Premium Tab Maya-81 Price Premium Tab Maya-81 Price In India Premium Tab Maya-81 Review Presentation Tools president PressReader price price in India price Micromax Canvas 3 Prices in india Princeware Jumbo Storage Set Priya Envy Tiffin Box Problem Fixes Processor Product Guides Profits promise day 2013 promise day 2013 poems Promise day 2013 Poems in Hindi promise day 2013 quotes promise day best quotes pros n cons published Qr codes quad core quad core phablets quad-core phablet quad-core processor quad-core Tegra 3 Nvidia phablet Qualcomm qualcomm snapdragon 800 qualcomm snapdragon 800 clock speed quote Promise day 2013 quotes quotes for Promise day 2013 quotes Promise day 2013 ram Ramos Rating Plugins Ratings amp; Reviews RealEstate Sites recent Recharge Recharge Deals Recron Pillows Red Rose rediff Rediff Coupons Reebok Mobile Runner Shoes release Releases Reliance Reliance Industries Reliance Industries Limited Renater Research resolution resources Resturants Retail review reviews REX REX 60 REX 70 REX 80 REX 90 REX Series Reynolds Trigger Pens right RIL Rings ringtones Ritz Canisters Roadster Jeans Roadster Men Blue Indigo Dyed Jeans Roadster Women Electric Blue Slim Fit Jeans Roundups rs-i-clinician-medical Rss Feed Ruby rumor rumors Rumour s4 S820 S920 saholic Saint Gobain Sale Salora Salora Mobiles Salora POWER Maxx Z1 Salora POWER Maxx Z1 India Salora POWER Maxx Z1 price in india Sample Code Download Samsung Samsung ATIV Book 9 Lite Samsung ATIV Book 9 Lite Price Samsung ATIV Book 9 Lite price In INdia Samsung ATIV Book 9 Lite Review Samsung ATIV One 5 Style Features Samsung ATIV One 5 Style Price Samsung ATIV One 5 Style Price In India Samsung ATIV One 5 Style Review Samsung ATIV Q Samsung ATIV Q specs Samsung Ativ Smart PC buy online in India Samsung Ativ Smart PC lowest price in india Samsung Ativ Smart PC reviews Samsung Bluetooth Headset HM1200 Samsung Bluetooth Headsets Samsung Galaxy Samsung Galaxy Core Duos Features Samsung Galaxy Core Duos Price Samsung Galaxy Core Duos Price In India Samsung Galaxy Core Duos Review Samsung Galaxy core price Samsung Galaxy Core specifications Samsung Galaxy Grand Samsung Galaxy Nexus Samsung Galaxy Note Samsung Galaxy Note 2 Samsung Galaxy Note 8.0 full specifications Samsung Galaxy Note Mobile Phone Samsung Galaxy NX Camera Features Samsung Galaxy NX Camera Price Samsung Galaxy NX Camera Price In India Samsung Galaxy NX Camera Review Samsung Galaxy S IV Mini Samsung Galaxy S IV Mini India Samsung Galaxy S IV Mini price in india Samsung Galaxy S3 samsung galaxy s4 Samsung Galaxy Star Samsung Galaxy Star Duos online availability Samsung Galaxy Star Duos price in India Samsung Galaxy Star Duos specifications Samsung Galaxy Star India Samsung Galaxy Star price in india Samsung Galaxy Tab 2 311 Samsung Galaxy Tab 2 311 Features Samsung Galaxy Tab 2 311 Price Samsung Galaxy Tab 2 311 Price In India Samsung Galaxy Tab 2 P3110 Samsung Galaxy Tab 3 Samsung Galaxy Tab 3 India Samsung Galaxy Tab 3 price in india Samsung Galaxy Tab 3 Tablets Samsung Mobile Phones Samsung Mobiles Samsung S20C300BL Led Monitor Samsung S20C300BL Price Samsung S20C300BL Price In India Samsung S4 Samsung Tab 2 311 tablet samsung vs apple Samsung WB110 20 megapixel Samsung WB110 Price Samsung WB110 Price In India Samsung WB110 Review saturday satvikshop Satvikshop Coupons scandal School Stationery Scomp Techno Tab Plus Scratch Guards Screen size scrolling seagate central seagate central availability in India seagate central price in India seagate wireless plus seagate wireless plus availability in India seagate wireless plus price in India Search engine optimization Selectors SEM Tips SEO SEO tips Server Virtualization Sesa Hair Care Seventymm Coupon shares Sheets amp; Bedding Sets Shoes/ Socks shopclues ShopClues Coupons Shopping Cart Plugins Signature HD A118 Silver Coins Sim Card Slot Simmtronics Skott Ahn Sleeveless Frocks SLT-A58 Small Business smallest Smart PC Pro buy online in India Smart PC Pro lowest price in india Smart PC Pro reviews smart tv smartphone Smartphones SmartWatch Smarty Smatphone SMO Snap View function snapdeal Snapdeal Coupons SnapDragon snapdragon 200 snapdragon 400 snapdragon 600 Snapdragon 800 Snapdragon Battery Guru Social Media Optimization Social Networking Softrax Battery Operated Hummer Software softwares Softwear T-Shirts Sonata Ecstatic Watch Sony Sony Cybershot DSC - W610 Digital Camera Sony Cybershot DSC-S5000 India Sony Cybershot DSC-S5000 Price Sony Cybershot DSC-S5000 Price in INDIA Sony Digital Cameras Sony DSC-S5000 Digital Camera Sony Ericsson Sony Mobile Phones Sony Mobiles SONY VAIO VPCF223FX Sony Xperia Sony Xperia C670X Sony Xperia C670X India Sony Xperia C670X price in india Sony Xperia Honami Sony Xperia i1 Honami Sony Xperia i1 Honami leak Sony Xperia i1 Honami specifications Sony Xperia T Sony Xperia T Jelly Bean update Sony Xperia Tablet Z Sony Xperia Tipo Sony Xperia Z Sony Xperia Z Ultra Sony Xperia Z Ultra launch date Sony Xperia Z Ultra launch in India Sony Xperia Z Ultra leaked pictures Sony Xperia Z Ultra price Sony Xperia Z Ultra specifications Sony Xperia Z Ultra specs Sony Xperia ZL Source Map SPC Speakers specifications specs spend valentines day Spice Spice Coolpad Mi-515 Features Spice Coolpad Mi-515 Price Spice Coolpad Mi-515 Price In India Spice Coolpad Mi-515 Review Spice Coolpad Mi-515 specifications Spice Coolpad Mi515 online Spice Coolpad Mi515 price in India Spice Coolpad Mi515 specifications Spice Mi-435 Stellar Nhance Spice Mi-530 Spice Mi-530 India Spice Mi-530 price in india Spice Mobiles Spice Stellar Nhance Mi-435 Spice Stellar Nhance Mi-435 India Spice Stellar Nhance Mi-435 price in india Spice Stellar Virtuoso Pro Spice Stellar Virtuoso Pro launched Spice Stellar Virtuoso Pro price in India Spice Stellar Virtuoso Pro specfications Spinner SQL SQLIte DB starcj Start Menu state state government jobs Stationery Stellar Prime Mi-510 specifications Stock Android Stocks store Stores stylus sulekha Sunglasses Sunpad Super Max Ultimate Shave Foam Supplements Surface Surface smartphone Suzuki Intruder M800 SWIPE Swipe Halo Value Swipe Halo Value India Swipe Halo Value price in india Swipe Halo Value Tablets Symfony Syntax Highlighters sysprobs System Updates TabActivity TabHost TabLayout Table of Contents Tablet Tablet Kiosk Tablet PC Tablets Tablets In tablets in india Tabs TabWidget TastyKhana Coupons Tata DOCOMO Tata Tea Gold TCL Idol X Features TCL Idol X Price In India TCL Idol X Review TCL Idol X Specs Team Collaboration Teaser tech amp; sci Tech News tech specs Tech Updates Technopedia Television Test Coverage Tickets tips Tips and Tricks Tips To Get Traffic Titan Men Watches Titan Women Watches tool toolkit Top Top 10 Top 10 Valentines Day Top 10 Valentines Day Ideas Top 10 Valentines Day Ideas 2013 Top 5 3D TVs Top 5 Games Top 5 Netbooks top 5 tablets Toshiba Toshiba 32quot; LED Television touchscreen Tourist Destinations Towels and Bedsheets Toys Toys amp; Games trademark tradus Tradus Coupons Training Travel Travel Accessories Travel amp; Tour TravelDeals Tresorit Tricks Triluminous Try jQuery Tutorials TV TV and Monitors TV/LCD TVC Mobiles TVC Nuclear SX 5.3i TVC Nuclear SX 5.3i India TVC Nuclear SX 5.3i price in india Twitter Ubislate UBUNDU Ubuntu UI Programmatically UI through Code Umi Mobiles Umi X1 Umi X1 India Umi X1 price in india UMI X2 UMI X2 delivery UMI X2 delivery date UMI X2 full specifications UMI X2 Status India united states Upcoming update Upgrade Upgrade ICS to Jely Bean upgrade Xperia T to Jelly Bean US USB Mobile Phone Charger usefull User Interface Vacuum Cleaners valentine valentine day Valentine Day 2013 Valentine Day 2013 idea Valentine Day 2013 ideas Valentine Day 2013 ideas for London Valentine’s Day Valentine’s Day 2013 idea valentines Valentines Day 2013 Valentines Day 2013 ideas valentines day dinner Valentines Day idea 2013 valentines day ideas Valentines Day Ideas 2013 Valentines Day Ideas unique.Valentines Day 2013 Valentines Promise Day 2013 Poems Validation Varun Stainless Steel CB Tope Veede Vega Rechargeable Vacuum Cleaner Vega Vacuum Cleaners Vertu Vertu Mobiles Vertu Ti Vertu Ti India Vertu Ti price in india Video Slideshow Videocon Videocon A26 Videocon A26 Dual Sim Videocon A26 Price Videocon A26 Price In India Videocon A26 Review Videocon A27 Videocon A27 India Videocon A27 price in india Videocon A55HD Videocon A55HD features Videocon A55HD launched Videocon A55HD price Videocon A55HD specifications Videocon Mobiles videocon tablet videos Views ViewSonic violence VIP Elite Vests VIP Frenchie Briefs VirtualBox Vizio Vizio MT11X-A1 Features Vizio MT11X-A1 Price Vizio MT11X-A1 Price In India Vizio MT11X-A1 Review vlc player VMware Vodafone voice calling tablet W3C Wall papers Wallets for him Wammy Mobiles Wammy Passion Y HD Wammy Passion Y HD India Wammy Passion Y HD price in india Watch Watches Watches for her Watches for him Waterproof Web app web bugs Web Design Web Development web development tools Web Hosting Web Server web SSL Certificate Web Tools web-design web-development Webcams webmaster tools webOS Website Advice from Google Website Design Mistakes websites WebView What is jQuery WickedLeak WickedLeak Wammy Passion Y HD WiFi tablet WikiPad willcom Willow Glass Window 8 style notification windows Windows 7 windows 7 Genuine Advantage Notification Windows 7 Tricks Windows 8 windows 8 based hybrids windows 8.1 Windows and Android hybrid windows phone windows phone 8 Windows Stores in India Windows Tricks Wireless Charger DT-900 wireless phone wishes Women Women Body Shapers Women's Apparel Women's Nightwears Womens Capris Wood-O-Plast Dart Board Wordpress wordpress Calendar plugins Wordpress Fix Wordpress Plugins Wordpress queries words words-quotes world wx06a Wynncom G51 Wynncom G51 India Wynncom G51 price in india Wynncom Mobiles X-Reality Xbox Music Redesigned Xiam Technologies Limited XML XML Inflate xolo XOLO 1000 XOLO Clover Trail+ smartphone XOLO Intel dual-core smartphone XOLO Intel smartphone Xolo Mobiles XOLO new smartphone XOLO new smartphone launch XOLO new smartphone launch March 14 Xolo Q600 Xolo Q600 price in India Xolo q600 released in India Xolo Q600 specification review Xolo Q600 specifications Xolo Q800 Xolo Q800 full specifications Xolo Q800 India Xolo Q800 price in india XOLO smartphones XOLO X500 XOLO X900 XPERIA Xperia E/E dual xperia tablet z Xperia Z xperia zl years-published yebhi Yebhi Coupons Yepme youtube Yumdeals YumeDeals Coupons Zebronics Zebronics H-Vivo Wireless Headphone Zebronics Node MP3 Player Zen Zend Zend Framework Zero Gravity Deodorants Zivame Coupons zoomin Zoomin Coupons Zoop Boys Cars P3H Watch Zopo Zopo 810 Zopo 810 India Zopo 810 price in india Zopo 910 Zopo 910 IndiA Zopo 910 price in india ZOPO 950+ ZOPO 950+ India ZOPO 950+ price in india Zopo C2 Zopo C2 Price Zopo C2 Price In india Zopo C2 Review Zopo Mobiles zopo phablet zopo quad-core Tegra 3 Nvidia Zopo ZP600 Libero 3D Zopo ZP600 Libero 3D India Zopo ZP600 Libero 3D price in india ZOPO ZP810 ZOPO ZP910 Zopo ZP950+ Zopo ZP960 Zopo ZP960 India Zopo ZP960 price in india zte ZTE Blade C ZTE Blade C India ZTE Blade C price in india ZTE Grand Memo ZTE Grand Memo India ZTE Grand Memo price in india ZTE MF190 3g Datacard price ZTE MF190 Datacard Review ZTE MF190 India ZTE MF190 Price In India ZTE Mobiles ZTE Open ZTE Open goes on sale ZTE Open India ZTE Open price ZTE Open price in india Zync Dual 7.0 Zync Dual 7.0 India Zync Dual 7.0 price in india Zync Dual 7.0 Tablets Zync Quad 8.0 Zync Quad 8.0 India Zync Quad 8.0 price in india Zync Quad 8.0 Tablets Zync Quad 9.7 Zync Quad 9.7 India Zync Quad 9.7 price in india Zync Quad 9.7 Tablets