debug a stored procedure
Hi allI'm kinda new to odp.net and I was wondering is there a way to get into a stored procedure that is already on the database
so for example of oracle 10g using Toad, I did the following.
create table emp as
(select 'Bob' name, 100 sal from dual union
select 'Fred' name, 200 sal from dual union
select 'Mary' name, 300 sal from dual union
select 'Joe' name, 400 sal from dual
);
then I did a stored procedure CREATE OR REPLACE procedure p_Increment_Salary is
Begin
Update emp set sal = sal + 600;
commit;
end;
I am running Oracle 10 g Release 10.2.0.1.0I have Oracle Developer Tools for Visual Studio Copyright (c) 2005, 2007
and I'm under visual studio 2008 version 9.0.21022.8RTM version 3.5 SP1
in visual studio, I did a project asp.net with a button and I click on the button
Protected Sub btnExecuteDML_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnExecuteDML.Click
'Create Connection to Database
Dim cn As New OracleConnection("Data Source =xxxxx; User Id = xxxxx; password = xxxxxx")
' create the command object
Dim cmd As New OracleCommand
With cmd
'specify thay you are working with a sotred procedure
.CommandType = CommandType.StoredProcedure
'provide the name of the stored procedure
.CommandText = "p_Increment_Salary"
'proceed with the execution
.Connection = cn
.Connection.Open()
.ExecuteNonQuery()
.Connection.Close()
.Dispose()
End With
Response.Write("<script>alert('Succesfully executed')</script>")
End Sub
End Class
I set a breakpoint before the ExecuteNonQuery method and I would like to know how to enter in the stored procedure, but I can not quite understand.I opened Explorer server and sailed towards my stored procedure and it allowed set breakpoints inside but they get ignored when I run the web page in the debugger.
Thank you.
Hello
You'll need to set up and activate the PLSQL debugger in the Oracle Developer Tools for Visual Studio. Here is a small tutorial and how to guides you though the process.
http://www.Oracle.com/technology/oramag/Oracle/06-Sep/o56odp.html
There is a forum for issues specific to the developer tools to:
Oracle Developer Tools for Visual Studio
HTH
J.B.
Tags: Database
Similar Questions
-
Internal error: catalog view incompatible when calling a stored procedure
Hello
I use JDeveloper 11.1.1.4
When you call a stored procedure from AppModuleImpl, I get this error internal error: inconsistent display catalog
I'll call the stored procedure of this way
String lErrCode;
String lErrMsg;
Result of an integer;
ARRAY inputArray = null;
Table STRUCT that can be passed to a PLSQL PROCEDURE
inputArray =
JdbcSqlMapper.preparePlSqlArrayUsingVOAttrbs (conn, recordType,
view, rm);
OracleCallableStatement st =
(OracleCallableStatement) conn.prepareCall ("{?}") = call ("+
procedureName +.
"(?,?,?))}");
st.registerOutParameter (1, Types.INTEGER);
st.setObject (2, inputArray, OracleTypes.ARRAY);
st.registerOutParameter (2, OracleTypes.ARRAY,
recordType.getTableType ());
st.registerOutParameter (3, Types.VARCHAR);
st.registerOutParameter (4, Types.VARCHAR);
St.Execute ();
I checked the subsidies for this package to all users. All users with grants to this package.
I don't know where I start to debug this issue.
Kindly help.
Thank you and best regards,
John.
Have yo uchecked the right of the types of data used (at least the TABLE) to the user (referred to Pokusak blog: JPublisher - incompatible catalog display)?
Timo
-
Create a stored procedure in the settings view
I want to be able to create a view with the parameters of a stored procedure.
Oracle 11g.
don't know how to use the variable in immediate execution.
CREATE OR REPLACE
PROCEDURE TEST_GENERIC (TBL IN VARCHAR2, VWNAME IN VARCHAR2)
AS
BEGIN
RUN IMMEDIATELY "CREATE OR REPLACE VIEW VWNAME AS SELECT SYSDATE FROM TBL";
COMMIT;
END;
exec ('BIRD', 'DUAL') TEST_GENERIC
Thanks for any help
Hello
Single quotes enclose a literal string; in other words, the text between the quotes literally means what it says, without reference to any variables.
So, when you say:
RUN IMMEDIATELY "CREATE OR REPLACE VIEW VWNAME AS SELECT SYSDATE FROM TBL";
CREATE the word literally means to CREATE. You may or may not have also a variable called CREATE, but that is irrelevant.
The word OR means OR literally. You may or may not have also a variable called operation GOLD, but that is irrelevant.
REPLACE the word literally means REPLACE. You may or may not have also a variable called to REPLACE, but that is irrelevant.
...
The TBL Word literally means TBL. You may or may not have also a variable called TBL, but that is irrelevant.
If you want to reference a variable called TBL, then use TBL outside single quotes, like this:
...
sql_text: = "CREATE or REPLACE VIEW VWNAME AS SELECT SYSDATE FROM '
|| TBL;
dbms_output.put_line (sql_text |) "= sql_text before EXECUTE IMMEDIATE'); -For debugging
EXECUTE IMMEDIATE sql_text.
...
On the rare occasions when you use dynamic SQL statements, always put the dynamic SQL statement in a string variable (for example, sql_text, above) so that you can easily display for debugging purposes and to ensure that the command you are viewing is the same exact command that you should run.
I guess the code you posted is a first test version of something that will be much, much different when it is finished. Creating objects from database (such as views) in PL/SQL is almost always a terrible idea, and it seems that opinion that this code is attempting to produce would be very useful, anyway.
-
Can not see all the stored procedures in the Entity Data Model Wizard
I hope it is a simple oversight on my part I try to use the new beta version of odp.net with entity framework support. I can open the Entity Data Model Wizard, give him my information database, and I can choose various tables to use successfully. But in the list where I select the tables, views and stored procedures, the wizard does not see my stored procs or my point of view.
Does anyone know why he would see the tables but not views or stored procedures? My procs can be found under "packages" If that makes a difference. I tried to create a fictional stored procedure at the level above the title of 'procedures', but it is unclear whether.
Is it possible for me to debug this from here? The log files, I could watch that would help me?
Thank you
JimI belive your Oracle database 10 g such as 9iR2 predates.
ODP/EF Beta does not list the stored procedures or functions when connect you to a database Oracle 10 g before.Readme.txt:
4. the procedures are not compatible with the DB 9.2.
Thus, there is no stored procedure listed by the EDM Wizard for 9.2 DBs. -
Forms - calls to rather than shares of standard database stored procedures
After seeing the reports, I now start with shapes in the APEX. :)
While I like the basic features offered by different Assistants, there is one thing that bothers me. After you create your form, you get basically 3 buttons (not counting cancel them) for different actions, each corresponding to an Action of database (SQL INSERT/UPDATE/DELETE). That's nice, but is not exactly what I want. I would replace the actions of database directly by the calls of stored procedures (in a package), one for each action. Would be nice, of course, to keep the benefits of the wizard, in particular in view of the fact that I would like to find a simple way to create standard forms. So, basically, I would create my forms in this way, but instead of linking the button action predefined database, do call a stored procedure. It's somehow possible and what would be the best way to achieve this?
I am running 4.0.1.00.03 on an Oracle XE database APEX.
ErwinUnfortunately it is only three as a limit.
Instead (to link a page), you can change your link (s) to the form via a URL using the following syntax:
f?p=App:Page:Session:Request:Debug:ClearCache:itemNames:itemValues:PrinterFriendly
Use substitution variables, as in that above syntax and ItemNames and ItemValues through comma lists of names and values in the respective order and in this way you can send more than three on the next page.
-
Classic ASP, passing Null to a stored procedure
I'm having a problem passing NULL to a stored procedure on a MS SQL Server. The code is classic ASP.
I built the sql Command first, and then remoteDB.Connection.Execute (sqlCommand, adCmdText)
My classic asp code to construct the sqlCommand object
sqlCommand = "procWebAddProspectOwner" & "1.25," & "'" & "HHTitle" & "','" & 'HHFirstName' & 'NULL' & ',' & 'NULL '.
The writing of the response to the web browser for debugging shows this
procWebAddProspectOwner 1.25, 'HHTitle', 'HHFirstName', NULL, NULL
ADODB. Connection error '800a0bb9 '.
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
Trouble shoot I have cut and paste this into the asp the elucidating of SQL query page and it works fine.
procWebAddProspectOwner 1.25, 'HHTitle', 'HHFirstName', NULL, NULL
ideas:
David
"DEPearson" wrote in message
News:f2hspv$8h1$1@forums. Macromedia.com...
> ADODB. Connection error '800a0bb9 '.
> Arguments are of the wrong type, are out of acceptable range, or are in
> conflict between them.
>It is usually a missing connection string. Make sure that the connection
string is there, you wrote that your connections and right
folder is located on the server. -
Question packets and stored procedures
Been working with Oracle for a month now and I have a question about stored procedures/packages. I created 3 stored procedures and a search function to do some work as follows:
1 load the initial set of data into a table.
2. turn to day of the preceding table columns by using a specific search function.
3. put to update a single column with a value based on grouped subsets of the data in the table.
I divide the latter in separate proceedings to facilitate debugging and validation of each step, but now I want to put them all together and run them sequentially. In my view, there are two ways to do this:
1. create another stored procedure that will run the three in the right order.
2 create a package and move all procedures and functions and call each in the right order.
Don't know which approach is preferable, although I'm leaning towards the first option, any actual experience would be appreciated. Thanks in advance!
DaveHow about option 3:
3 create a package and move all procedures and functions, and then add an additional procedure in the package that calls each in the correct order and call this procedure.
PS. only this last procedure must be in the package spec. All others must be put into the body (and can remain hidden for the code outside the package).
Published by: Toon Koppelaars February 26, 2010 21:07
-
java.sql.SQLException: ORA-06550 and ORA-00900 call stored procedures
Hi all
I have 2 a stored procedures that I want to call from my Session bean. One of them takes a few settings, but not the other. When I call the procedures, I get the following errors described below. I tested the two stored procedures in sql plus and sqldveleoper and they work well. The funniest, it is, I have another stored procedure that I can call successfully from the same bean in session with no problems, so I'm a bit confused as to why his play now.
I use stand-alone 10.1.3.4 OC4J and Oracle 10 g Db 10.2.0.4 and platform DB that I use is Oracle10gPlatform and Eclipselink as my JPA provider. I have also tried against toplink (not toplink essentials) and still no joy
Here is the error I get when I try and call the procedure which takes the parameters of the session bean
Here are my stored procedure that take parametersInternal Exception: java.sql.SQLException: ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'HASHDATA' ORA-06550: line 1, column 7: PL/SQL: Statement ignored Error Code: 6550 Call: BEGIN HashData(input=>?, hashedValue=>?, hashed=>?); END; bind => [password1, => hashedValue, => hashed] Query: DataReadQuery()
Here is my code in the session bean to call the procedure that takes as parameters (Hashdata)create or replace procedure hashData(input IN VARCHAR2, hashedValue OUT BLOB, hashed OUT BOOLEAN) as inputRaw RAW(2000); --hashed BOOLEAN := false; begin dbms_output.put_line('the data to be hashed is '||input); dbms_output.put_line('converting input to raw ...'); inputRaw := utl_i18n.string_to_raw(input,'AL32UTF8'); dbms_output.put_line('Hashing Data ...'); hashedValue := DBMS_CRYPTO.Hash (src=>inputRaw,typ=>DBMS_CRYPTO.HASH_SH1); dbms_output.put_line('hash is '||UTL_I18N.raw_to_char(dbms_lob.substr(hashedValue, 4000,1))); if (hashedValue is not null) then hashed :=true; dbms_output.put_line('hashedValue IS NOT null'); else hashed := false; dbms_output.put_line('hashedValue IS null'); end if; end;
When I call the other takes no parameters, I get the following error.public UserBean() { // TODO Auto-generated constructor stub sessMan = SessionManager.getManager(); session = sessMan.getSession("Session", Thread.currentThread() .getContextClassLoader()); } public Serializable hashData(String input){ logger.debug("Hashing Data ... "); hashedValue= null; boolean hashed=false; StoredProcedureCall call = new StoredProcedureCall(); ValueReadQuery query = new ValueReadQuery(); call.setProcedureName("HashData"); call.addNamedArgumentValue("input", input); call.addNamedOutputArgument("hashedValue", "hashedValue", java.sql.Blob.class); call.addNamedOutputArgument("hashed", "hashed", java.lang.Integer.class); query.addArgument("input"); query.setCall(call); session.executeQuery(query); if ((Boolean)hashed){ logger.debug("The data has been hashed and the hash value is: "+hashedValue); } else{ logger.debug("The data has could not be hashed"); hashedValue=null; } return (Serializable)hashedValue; }
Here is the procedure which takes no parametersInternal Exception: java.sql.SQLException: ORA-00900: invalid SQL statement Error Code: 900 Call: BEGIN testJPAProc(); END; Query: DataReadQuery()
Heres is the code to call procedures that take no parameterscreate or replace procedure testJPAProc is begin dbms_output.put_line('testJPAProc called'); end;
You guys can tell me where I'm wrong if I do something wrong. Why make these mistakes? because as far as I can tell the code (java and pl/sql) are both correct unless there is something I missed. It's kinda funny because I have another stored procedure I can call successfully.StoredProcedureCall call = new StoredProcedureCall(); ValueReadQuery query = new ValueReadQuery(); call.setProcedureName("testJPAProc"); query.setCall(call); session.executeQuery(query);
Thank youThe first question is that the Boolean in Oracle is not a supported JDBC type, but a PLSQL type.
Change to an INTEGER is probably the best, you can also use the PLSQLStoredProcedureCall class to access.The second problem is perhaps that the stored procedure is not valid, make sure that it compiled correctly. It can also be the type of your query, you must use a DataModifyQuery, not a read request that it returns nothing.
If still no luck, try to call directly through JDBC, it works?---
James: http://www.eclipselink.org: http://en.wikibooks.org/wiki/Java_Persistence -
How to call the stored procedure from javascript? (Google suggest, AJAX)
Hi I want to set up a text field so that it behaves like [Google Suggest | http://www.google.com/webhp?complete=1 & hl = en].
I read this post .
Now, I installed everything according to this document. But it simply doesn't. And I don't know why.
I think that problems can fall into the following three categories:
1. the text field and the page invoking the appropriate javascript?
2 - is the JavaScript call the stored procedure?
3. the stored procedure correctly returns the result formatted?
I'm assertive for 1 and 3, but I'm not sure 2. Because I don't know how if a stored procedure has been called? Is there a PL/SQL statement that I can query in SQL * more?
Also, I would like to know how to debug AJAX in the APEX. It involves a lot of things.
Finally, I used APEX 3.2 and Oracle XE. I can't find file dads.conf or marvel.conf. Is ' / apex / "the virtual directory for APEX?
Thank you very much!Buffalo,
I managed to make it work on XE with APEX 3.2!
It took more time than expected because my XE installation was still on an earlier version of the Apex and I had put it first...But that's what I did:
-in the ac.js file, I changed the path ' / apex / "and I added the ac.js file to my candidacy as a static file. So as you did.
-J' copied my request to the XE and copied my procedure on the schema that is related to my request
-J' gave to run anonymous rights my procedureNow at first, it did not work...
Then I suddenly remembered something: If you want to run a procedure through the pl/sql gateway in the XE, XE please how it is.
Do you this by changing the APEX_030200.wwv_flow_epg_include_mod_local function!This is the code for the function changed for my example:
CREATE OR REPLACE function APEX_030200.wwv_flow_epg_include_mod_local( procedure_name in varchar2) return boolean is begin --return false; -- remove this statement when you modify this function -- -- Administrator note: the procedure_name input parameter may be in the format: -- -- procedure -- schema.procedure -- package.procedure -- schema.package.procedure -- -- If the expected input parameter is a procedure name only, the IN list code shown below -- can be modified to itemize the expected procedure names. Otherwise you must parse the -- procedure_name parameter and replace the simple code below with code that will evaluate -- all of the cases listed above. -- if upper(procedure_name) in ( 'MATTHIASH.INCSEARCH') then return TRUE; else return FALSE; end if; end wwv_flow_epg_include_mod_local; /
After that, the AJAX function worked as expected...
HTH
Matthias HoysPublished by: mhoys on August 13, 2009 15:24
-
Tables created in a stored procedure cannot be used with dynamic SQL? The impact?
There is a thread on the forum which explains how to create tables within a stored procedure (How to create a table in a stored procedure , however, it does create a table as such, but not how to use it (insert, select, update, etc.) the table in the stored procedure.) Looking around and in the light of the tests, it seems that you need to use dynamic SQL statements to execute ddl in a stored procedure in Oracle DB. In addition, it also seems that you cannot use dynamic SQL statements for reuse (insert, select, update, etc.) the table that was created in the stored procedure? Is this really the case?
If this is the case, I am afraid that if tables cannot be 'created and used"in a stored procedure using the dynamic SQL, as is the case with most of the servers of DB dynamic SQL is not a part of the implementation plan and, therefore, is quite expensive (slow). This is the case with Oracle, and if yes what is the performance impact? (Apparently, with Informix, yield loss is about 3 - 4 times, MS SQL - 4 - 5 times and so on).
In summary, tables created within a stored procedure cannot be 'used' with dynamic SQL, and if so, what is the impact of performance as such?
Thank you and best regards,
Amedeo.
Published by: AGF on March 17, 2009 10:51AGF says:
Hi, Frank.Thank you for your response. I understand that the dynamic SQL is required in this context.
Unfortunately, I am yet to discover "that seeks to" using temporary tables inside stored procedures. I'm helping a migration from MySQL to Oracle DB, and this was one of the dilemmas encountered. I'll post what is the attempt, when more.
In Oracle, we use [global temporary Tables | http://www.psoug.org/reference/OLD/gtt.html?PHPSESSID=67b3adaeaf970906c5e037b23ed380c2] aka TWG these tables need only be created once everything like a normal table, but they act differently when they are used. The data inserted in TWG will be visible at the session that inserted data, allowing you to use the table for their own temporary needs while not collide with them of all sessions. The data of the TWG will be automatically deleted (if not deleted programmatically) when a) a commit is issued or b) the session ends according to the parameter that is used during the creation of the TWG. There is no real need in Oracle to create tables dynamically in code.
I noticed that many people say that the "Creation of the tables within a stored procedure" is not a good idea, but nobody seems necessarily explain why? Think you could elaborate a little bit? Would be appreciated.
The main reason is that when you come to compile PL/SQL code on the database, all explicit references to tables in the code must correspond to an existing table, otherwise a djab error will occur. This is necessary so that Oracle can validate the columns that are referenced, the data types of those columns etc.. These compilation controls are an important element to ensure that the compiled code is as error free as possible (there is no accounting for the logic of programmers though ;)).
If you start to create tables dynamically in your PL/SQL code, so any time you want to reference this table you must ensure that you write your SQL queries dynamically too. Once you start doing this, then Oracle will not be able to validate your SQL syntax, check the types of data or SQL logic. This makes your code more difficult to write and harder to debug, because inevitably it contains errors. It also means that for example if you want to write a simple query to get that one out in a variable value (which would take a single line of SQL with static tables), you end up writing a dynamic slider all for her. Very heavy and very messy. You also get the situation in which, if you create tables dynamically in the code, you are also likely to drop tables dynamically in code. If it is a fixed table name, then in an environment multi-user, you get in a mess well when different user sessions are trying to determine if the table exists already or is the last one to use so they can drop etc. What headache! If you create tables with table names, then variable Dynamics not only make you a lot end up creating (and falling) of objects on the database, which can cause an overload on the update of the data dictionary, but how can ensure you that you clean the tables, if your code has an exception any. Indeed, you'll find yourself with redundant tables lying around on your database, may contain sensitive data that should be removed.
With the TWG, you have none of these issues.
Also, what is the impact on the performance of the dynamic SQL statements in Oracle? I read some contrasting opinions, some indicating that it is not a lot of difference between static SQL and SQL dynamic in more recent versions of Oracle DB (Re: why dynamic sql is slower than static sql is this true?)
When the query runs on the database, there will be no difference in performance because it is just a request for enforcement in the SQL engine. Performance problems may occur if your dynamic query is not binding variable in the query correctly (because this would cause difficult analysis of the query rather than sweet), and also the extra time, to dynamically write the query running.
Another risk of dynamic query is SQL injection which may result in a security risk on the database.
Good programming will have little need for the tables of dynamically created dynamically or SQL.
-
How to run a stored procedure by using the steps in database?
Hello
I'm trying to run some procedures of the store and it will not work.
See the file attached is seq.
I have a varchar parameter (50), which must also be provided to the stored procedure and it returns an int.
To do this I had to only use data in an open statement
-
Get the EXIT and the RETURN of a stored procedure parameters
I have a stored procedure (SQL Server 2008 R2 MS) as in the following example.
Thanks to the connectivity of database I get OUTPUT parameters, but I can't get the game DATA RECORDS and RETURN value.
Someone knows how to do this?
CREATE PROCEDURE [dbo]. [TS_Teste] (@T057_S_NOMEMAQUINA VARCHAR (20), @STATUS INT OUTPUT, OUTPUT OF NVARCHAR (500) OF @ERRO)
AS
BEGIN
DECLARE THE TABLE @TABLE (CODE INT, DESCRIPTION VARCHAR (30))INSERT VALUES INTO @TABLE (51, 'A')
INSERT VALUES INTO @TABLE (52, 'B')INSERT VALUES INTO @TABLE (53, 'C')
SELECT * FROM @TABLE
SET @STATUS = 1
SET @ERRO = "Nenhum erro!
RETURN 0
END
I finally found what was wrong... He had a line in the stored procedure only aditional. It should be like this:
CREATE PROCEDURE [dbo]. [TS_Teste] (@T057_S_NOMEMAQUINA VARCHAR (20), @STATUS INT OUTPUT, OUTPUT OF NVARCHAR (500) OF @ERRO)
AS
BEGIN
SET NOCOUNT ON; -NEW LINE!DECLARE THE TABLE @TABLE (CODE INT, DESCRIPTION VARCHAR (30))
INSERT VALUES INTO @TABLE (51, 'A')
INSERT VALUES INTO @TABLE (52, 'B')INSERT VALUES INTO @TABLE (53, 'C')
SELECT * FROM @TABLE
SET @STATUS = 1
SET @ERRO = "Nenhum erro!
RETURN 0
END
-
I can't using stored procedures and need advice.
If I try to run the stored procedure code, I get an error saying that I not provided a required entry, but the LabVIEW looks I'm him.
But I get this error message.
The database table is as follows:
@ID is generated in the process, he is looked at and inserted.
I don't have the opportunity to get into the database. It is a stored procedure of writtin by the DB of my COMPUTER service engineer. The image above has the required fields highlighted in yellow I need to provide when executing my code.
Can you see where my mistake was made?
Thanks for the comments.
Ben
The procedure does not match the names of parameters with the values that you provide. You provide only 5 params, but there are 8 in the stored procedure. In your case, SerialNumber is spent in the ID, PartNumber in SerialNumber, etc.. Add some empty in your cluster params, if they are not mandatory.
-
Hello
I have a problem to transfer content to an XML file in a MS SQL database through a stored procedure data/fixed. I am able to transfer the content of the file using method...
HSTMT = DBPrepareSQL (hdbc, EXEC usp_InsertReport "
... ");resCode = DBExecutePreparedSQL (hstmt);
resCode = DBClosePreparedSQL (hstmt);
... but in this case, I am not able to read the return value of the stored procedure.
I tried to follow the example of the stored procedure in the help documentation (DBPrepareSQL), but I miss a xml data type?
No idea how to solve my problem?
Cake of KR
DianaS salvation,
Thanks for your comments. During this time I found another way which fullfill my needs:
resCode = DBSetAttributeDefault (hdbc, ATTR_DB_COMMAND_TYPE, DB_COMMAND_TEXT);
sprintf (sz_SqlStatement, "DECLARE @TESTID INT EXEC @TESTID = usp_InsertReport ' SELECT 'RetVal' %s = @TESTID", sz_Buffer ");
HSTMT = DBActivateSQL (hdbc, sz_SqlStatement);While ((resCode = DBFetchNext (hstmt)) == DB_SUCCESS)
{
/ * Enter values in the record. */
resCode = DBGetColInt (hstmt, 1, & s32_TestId);
}resCode = DBDeactivateSQL (hstmt);
sz_Buffer is the content of the XML file.
Cake of KR
-
SQL stored procedure input and output parameters
Hello Gang,
My dead end trying to call a stored procedure in SQL Server 2008 with the LV database tool.
for purposes of experimentation, I've created a small procedure with an input parameter that returns an integer as return value. It works describing a query, but all attempts at LV produce an error-2147217900 when executing query VI. I did find examples of that.
Sending a bunch of parameters to a stored procedure and checking the value of return seems to be pretty common stuff.
I'll appreciate any help.
Thank you
Roger
Hi Roger,
There are a few prerequisites which I will list below. If you have not checked these things, so don't hesitate, as your hiccups can be there.
Prerequisites:
- Ensure that you can read from a table in the database to verify that you can access the database (user permissions) and ensure that your login details are correct. Among other things, make sure that the. DSN switches to the correct database. (See the simple example below, SQL Select.vi)
- Make sure that your user (if you use SQL authentication) has permissions to run the STORED procedure by running the procedure in SQL Server Management Studio (you seem to have already done this)
Example by calling a procedure without parameters (attached as SPROC_No_Parameters.vi):
Example by calling a procedure with parameters (attached as SPROC_Parameters.vi):
An article on the execution of stored procedures is here:
http://digital.NI.com/public.nsf/allkb/07FD130746083E0686257300006326C4
Don't forget to download the example VI since it includes the cases where you want an output parameter of the procedure rather than a table.
I tested these against two very simple SPROCs and it worked fine (on SQL Server 2005, but 2008 should be the same). Stored procedures have been:
CREATE PROCEDURE [dbo]. [GetContacts]
AS
BEGIN
-SET NOCOUNT ON added to avoid additional results sets from
-interfering with SELECT statements.
SET NOCOUNT ON;-Controls insert for procedure here
SELECT * FROM Contacts
ENDand
CREATE PROCEDURE [dbo]. [MultiplyAges]
@param1 INT = 1
AS
BEGIN
-SET NOCOUNT ON added to avoid additional results sets from
-interfering with SELECT statements.
SET NOCOUNT ON;-Controls insert for procedure here
SELECT (age * @param1) OF Contacts
ENDI would like to know if these examples work for you or if you have any other questions. Don't forget to go through this KB article and articles related to it, they should cover other situations.
Matt
- Ensure that you can read from a table in the database to verify that you can access the database (user permissions) and ensure that your login details are correct. Among other things, make sure that the. DSN switches to the correct database. (See the simple example below, SQL Select.vi)
Maybe you are looking for
-
I tried opening/editing dmg different files from different sources and I still get the message: The following disk images could not be opened Reason for no mountable file system I also tried to open a different account and I get the same result, but
-
Error 1327. Invalid drive: D:\
Hi, when I run the update for Microsoft Office Outlook 2003 Junk Email Filter I get an error 1327. Invalid drive: D:\ messsage. My OS is Vista. Download address is http://www.microsoft.com/downloads/thankyou.aspx?familyId=ebbd7da0-08b8-4c60-8167-e45
-
When NVIDIA released GEFORCE GT 330 M drivers for 64-bit Windows 8?
I am running Windows 8 using VMware Fusion 4 on my Mac Book Pro, which has a GEForce GT 330 M. I am not able to install the driver 302.80. Please help or impose it via windows update as soon as POSSIBLE.
-
I try to install the update update of security for SQL 2005 service pake 3. I have vista 2 this update applies to my computer I get an error code ff or c0000005
-
where to insert a microSD on inspiron 1501
I bought a microsd card to download music and images on my Inspiron 1501; but I do not know where to put the plug in download the m.usic or images. Help, please