Update through native sql
Dear all,
i have written a select query for Update oracle database through Native SQL.
Query is
W_FLG = 'Y'
UPDATE LPR_LEAVEPLAN_TRN SET FLOWLEVEL = W_FLG WHERE EMP_ID = '11200010'.
LPR_LEAVEPLAN_TRN is my oracle table
i want to change the field of that table is FLOWLEVEL with W_FLG where employee id is 11200010
here update is not working.
can any body tell me how can update work with oracle database.
i m doing same way........like this
EXEC SQL.
OPEN DBCUR FOR
UPDATE LPR_LEAVEPLAN_TRN SET EMP_ID = '11210010' WHERE FLOWLEVEL = 1.
if sy-subrc = 0.
clear: W_FLG.
endif.
commit work.
CATCH cx_sy_dynamic_osql_error.
MESSAGE `Error in update!` TYPE 'I'.
ENDEXEC.
Here,
LPR_LEAVEPLAN_TRN is my oracle Table
EMP_ID is (i want to Change)
Plz Help
Similar Messages
-
Hi Pals,
I have a requirement which I would like to brief.
I have an internal table with columns FIELD1 and FIELD2. For all the values in FIELD1 I have to query a table MSI(which does not form a part of the R/3 framework) through Native SQL statement and get the corresponding values for FIELD2.
Could anybody suggest how I must proceed writing my statements between EXEC and ENDEXEC.
Do I have to query the database table for each entry in my internal table or is it possible to use for all entries in my SQL statemnt.
Your inputs would be highly appreciated.
Thank You in advance.
Regards,
Gayathri N.Hai Gayathri
check this document
EXEC SQL.
Addition
... PERFORMING form
Effect
Executes the Native SQL command enclosed by the statements EXEC SQL and ENDEXEC . In contrast to Open SQL , addressed database tables do not have to be known to the ABAP/4 Dictionary and the ABAP/4 program does not have to contain appropriate TABLES statements.
Example
Create the table AVERI_CLNT :
EXEC SQL.
CREATE TABLE AVERI_CLNT (
CLIENT CHAR(3) NOT NULL,
ARG1 CHAR(3) NOT NULL,
ARG2 CHAR(3) NOT NULL,
FUNCTION CHAR(10) NOT NULL,
PRIMARY KEY (CLIENT, ARG1, ARG2)
ENDEXEC.
With Native SQL commands, passing data between an ABAP/4 program and the database is achieved using host variables . A host variable is an ABAP/4 variable prefixed by a "*" in the Native SQL statement.
Example
Display a section of the table AVERI_CLNT :
DATA: F1(3), F2(3), F3(3).
F3 = ' 1 '
EXEC SQL.
SELECT CLIENT, ARG1 INTO :F1, :F2 FROM AVERI_CLNT
WHERE ARG2 = :F3
ENDEXEC.
WRITE: / F1, F2.
To simplify the spelling of INTO lists in the SELECT command, you can specify a single structure as the target area as in Open SQL .
Example
Display a section of the table AVERI_CLNT :
DATA: BEGIN OF WA,
CLIENT(3), ARG1(3), ARG2(3),
END OF WA.
DATA F3(3).
F3 = ' 1 '
EXEC SQL.
SELECT CLIENT, ARG1 INTO :WA FROM AVERI_CLNT
WHERE ARG2 = :F3
ENDEXEC.
WRITE: / WA-CLIENT, WA-ARG1.
Notes
In contrast to Open SQL , a client field in Native SQL is a field like any other and must be specified explicitly in calls.
Authorization checks cannot be properly realized in EXEC SQL . You should perform these in the program.
When you start the R/3 System, a CONNECT to the current database is executed automatically. An explicit CONNECT is unnecessary.
A Native SQL command can (but does not have to) end with a ";". Under no circumstances should it end with a ".".
Some database systems allow upper and lower case in table names and field names. If you want to take advantage of this, you must ensure that the spelling of names is correct. To enable entry of lower case letters in names in the ABAP/4 editor, you must set the attribute for upper/lower case in the report.
Since there are no arrays in ABAP/4 , array operations are not possible in Native SQL . If the result of a SELECT command is a table, you can read this table line by line either with the Native SQL command FETCH or with the addition ... PERFORMING form .
Unlike in ABAP/4 programs, the character " in a Native SQL statement does not introduce a comment until the end of the editor line.
Addition
... PERFORMING form
Effect
If the result of a SELECT command is a table, you can read this table line by line in a processing loop. The subroutine form is called once for each line. In this subroutine, you can leave the loop by using EXIT FROM SQL . If the result of the selection is a single record, the subroutine is called only once.
Example
Display a section of the table AVERI_CLNT :
DATA: F1(3), F2(3), F3(3).
F3 = ' 1 '
EXEC SQL PERFORMING WRITE_AVERI_CLNT.
SELECT CLIENT, ARG1 INTO :F1, :F2 FROM AVERI_CLNT
WHERE ARG2 = :F3
ENDEXEC.
FORM WRITE_AVERI_CLNT.
WRITE: / F1, F2.
ENDFORM.
Note
This addition is allowed only with a SELECT command.
Related SELECT , INSERT , UPDATE , MODIFY , DELETE , OPEN CURSOR , FETCH , CLOSE CURSOR, COMMIT WORK and ROLLBACK WORK .
go to se38
type 'EXEC' and put cursor on 'EXEC' press f1-function key
then you get help for EXEC
Thanks & regards
Sreenivasulu P
Message was edited by: Sreenivasulu Ponnadi -
Insert / Update of a TIME field using Native SQL
Hi Oracle gurus,
We are trying to perform inserts and updates within an ORACLE table where a TIME field exists without suscess. We are trying to code it using Native SQL.
EXEC SQL.
INSERT INTO table (field1[name], field2[age], field3[birthday], field4[hour])
VALUES (:name, :age, TO_DATE(:date_birth), ¿:hour?)
ENDEXEC.
EXEC SQL.
UPDATE table SET field3[birthday] = TO_DATE(:date_birth), field4[hour] = ¿:hour?
WHERE field1[name] = :name AND field2[age] = :age
ENDEXEC.
Which is the right coding sentence in order to achieve our goal?
Many thanks in advance. Best regards,
ImanolHi
There is no TIME datatype in oracle. There is only a TIMESTAMP or DATE type or the field is VARCHAR2 as most date fields in a SAP database are. To help you we would need the real field type. If possible you please do a desc <owner>.<table> in a sqlplus session and give us the field type.
If possible also supply the error you get.
Regards, Michael -
Hello ,
I have a reqaust to update a db table declared "outside" our R3 db.
I mennage to select the data using native sql with a connection to the db.
Now i need to modify the data on the db.
Is there a similliar command like "fetch next" ' for update?
Mybe i need to build a procedure in th "host" db and use its own commands to update?
Thanks,
kobyHello Kobi,
Which release of SAP are you woking on?
If you're on ECC6.0, instead you using Native SQL to call the stored procs of external DBs you can use the [ADBC APIs |http://help.sap.com/abapdocu_702/en/abenadbc_procedure.htm](CL_SQL* classes).
BR,
Suhas -
Insertion / Update of field of type "TIME" using Native SQL
Hi ABAP gurus,
We are trying to perform inserts and updates within an ORACLE table where a TIME field exists without suscess. We are trying to code it using Native SQL.
EXEC SQL.
INSERT INTO table (field1[name], field2[age], field3[birthday], field4[hour])
VALUES (:name, :age, TO_DATE(:date_birth), ¿:hour?)
ENDEXEC.
EXEC SQL.
UPDATE table SET field3[birthday] = TO_DATE(:date_birth), field4[hour] = ¿:hour?
WHERE field1[name] = :name AND field2[age] = :age
ENDEXEC.
Which is the right coding sentence in order to achieve our goal?
Many thanks in advance. Best regards,
Imanol>
Imanol Beguiristain wrote:
> Hi all,
>
> I am sorry for being unclear.
>
> I do want to code both INSERT and UPDATE. That is clear.
>
> The problem we are having is that we don't know how to code (using Native SQL) such instructions using in the SQL sentence a field of TIME type.
>
> Any helps?
>
> Thanks in advance.
>
> Imanol
I've not heard of an Oracle TIME datatype; we used to use the timestamp which is stored as part of the date or we set up a separate column to hold the time defined as CHAR. Still, it is possible that they have created such a thing since I last did SQL. In which case, there would have to be a function like TO_DATE which you would use to convert your time to its time format.
If you mean TIMESTAMP you can use something like the following to do the data conversion.
TO_TIMESTAMP(LOCALTIMESTAMP, 'DD-MON-RR HH.MI.SSXFF') -
Dynamic Update Statement in Native SQL
Hi Experts,
I want to dynamically pass the field in Update statement in Native SQL. For eg.
data: str1 type string.
str1 = 'MARKETS'.
EXEC SQL.
UPDATE PRDT.TBVEHDS4 SET (str1) = :'U'
WHERE VEH_NO = :'K1WK-54520'
AND SEGMENT_NO = :'01'
ENDEXEC.
But this is not taking (str1) as MARKETS field to update as U , its taking STR1 itself, Giving native SQL exception as Invalid Token as we are using DB2 as external DB system.
I checked with field-symbols also, but nothing helped.
Please help, thanks in Advance.
Regards,
AbhishekHi,
Check this demo program in SE38 ADBC_DEMO, take as example to construct your own dynamic native sql
Regards,
Felipe -
To update the status of the Sale Order through Pl/sql(backend)
Hi folks.
May I how to alter the status of Sale Order from 'Entered' to 'Awaiting for Approval' when the sale order was booked.After approval only it needs to change into 'BOOKED'.
Requirement Scenaria as follows:
Activity Status
1) Sale Order Creation Entered
2) Booking the Sale Order Awaiting For Approval
3) After Approved 'Booked'
or
4) After Rejected Rejected --- should not be available for pick and ship.
Please tell me the solution to alter the status and I had already tried both normal update statement and update through sale order API.Both didnt work.
kindly find me an appropriate solution
Note:I had already altered the OE order header workflow to go for approval when Sale order booked
Thanks in advanceApparently, your Sales Order Type has Approval Workflow associated. Have the approver approve it from the Notifications window. Alternatively have a script to approve the workflow with userid as the approver's, in order for approval and booking.
In case of forced Booking, use OE_ORDER_PUB.PROCESS_ORDER API to pass the Order Details along with BOOKED_FLAG='Y' and FLOW_STATUS_CODE='BOOKED'.
let me know,
Dip -
Hi,
I have below three update statements, and need to be in one transaction. How can I accomplish it using UpdateAllQuery? Finance_Management is a child table of Org mapped through org_id; Org_Finance is a child table of Finance_Management linked by finance_management_id.
Update Org
Set Account_Balance = Account_Balance + 25, Update_User = 'Jeff_Org', Update_Date = Systimestamp
Where Org_Id = 10226;
Update Finance_Management
Set Account_Balance = (Select Account_Balance From Org Where Org_Id = 10226),
Transaction_Amount = 25, Transaction_Date = Systimestamp
where finance_management_id = 1701152;
Update Org_Finance
Set Check_Mo_Number = 5432, Payment_Type = 'C'
where Finance_Management_Id = 1701152;
Alternatively, when I tried native SQL with executeNonSelectingCall within unit of work like below, it appears that even through the second SQLCall failed, the first one still committed to the database. How can I ensure the three SQLCalls are in one transaction?
UnitOfWork uow = getSessionFactory().acquireUnitOfWork();
uow.executeNonSelectingCall(new SQLCall(orgSql));
uow.executeNonSelectingCall(new SQLCall(fmSql));
uow.executeNonSelectingCall(new SQLCall(orgFnSql));
uow.commit();
Thanks for your help!
JeffreyI think I have figured it out.
For using UpdateAllQuery, three different UpdateAllQueries need to be constructed. One critical piece is that, use beginEarlyTransaction() before execute the three queries inside UOW. Same is true when using native SQLs.
Few questions though that I need some experts to clear my mind:
- so all database Queries can run inside unit of work, become part of the single transaction within UOW by using beginEarlyTransaction(), is this correct?
- How about insert? InsertObjectQuery and WriteObjectQuery don't seem allow to use expression, which I need for populating a field like "Account_Balance = (Select Account_Balance From Org Where Org_Id = 10226)". Any suggestions on what API call I should use without using native SQL?
Thanks,
Jeffrey -
hi all,
what is native sql? can any one provide me some examples with native sql? and when do we go for writing prgm in native sql?
is native sql stms are supported for pool and cluster tables?
regds
hariHi Hari,
DATA: BEGIN OF wa,
connid TYPE spfli-connid,
cityfrom TYPE spfli-cityfrom,
cityto TYPE spfli-cityto,
END OF wa.
DATA c1 TYPE spfli-carrid VALUE 'LH'.
EXEC SQL PERFORMING loop_output.
SELECT connid, cityfrom, cityto
INTO :wa
FROM spfli
WHERE carrid = :c1
ENDEXEC.
FORM loop_output.
WRITE: / wa-connid, wa-cityfrom, wa-cityto.
ENDFORM.
The system displays the following information:
The program uses the work area WA and the field C1 in the Native SQL SELECT statement. WA is the target area into which the selected data is written. The structure WA in the INTO clause is treated as though its components were all listed individually. INTO :WA-CONNID, :WA-CITYFROM, :WA-CITYTO. C1 is used in the WHERE clause. The subroutine LOOP_OUTPUT writes the data from WA to the screen.
Scope of Native SQL
Native SQL allows you to execute (nearly) all statements available through the SQL programming interface (usually known as SQL Call Interface or similar) for executing SQL program code directly (using EXEC IMMEDIATE or a similar command). The following sections list the statements that are not supported.
The parameters are separated by commas. You must also specify whether the parameter is for input (IN), output (OUT) or input and output (INOUT). For further information, refer to SAP Note 44977.
EXEC SQL
EXECUTE PROCEDURE proc1 ( IN :x, OUT :y )
ENDEXEC.
Cursor Processing
Cursor processing in Native SQL is similar to that in Open SQL:
OPEN <cursor name> FOR <statement>
FETCH NEXT <cursor name> INTO <target(s)>.
CLOSE <cursor name>
EXEC SQL
OPEN c1 FOR
SELECT client, arg1, arg2 FROM table_001
WHERE client = '000' AND arg2 = :arg2
ENDEXEC.
DO.
EXEC SQL.
FETCH NEXT c1 INTO :wa-client, :wa-arg1, :wa-arg2
ENDEXEC.
IF sy-subrc <> 0.
EXIT.
ELSE.
<verarbeite Daten>
ENDIF.
ENDDO.
EXEC SQL.
CLOSE c1
ENDEXEC.
This example opens a cursor, reads data line by line, and closes the cursor again. As in Open SQL, SY-SUBRC indicates whether a line could be read.
Data Types and Conversions
Using Native SQL, you can
Transfer values from ABAP fields to the database
Read data from the database and process it in ABAP programs.
Native SQL works without the administrative data about database tables stored in the ABAP Dictionary. Consequently, it cannot perform all of the consistency checks used in Open SQL. This places a larger degree of responsibility on application developers to work with ABAP fields of the correct type. You should always ensure that the ABAP data type and the type of the database column are identical.
If the database table is not defined in the ABAP Dictionary, you cannot refer directly to its data type. In this case, you should create a uniform type description in the ABAP Dictionary, which can then be used by all application programs.
If the table is defined in the ABAP Dictionary, you should remember that the sequence of fields in the ABAP Dictionary definition may not be the same as the actual sequence of fields in the database. Using the asterisk (*) in the SELECT clause to read all columns into a corresponding work area would lead to meaningless results. In the worst case, it would cause an error.
The
Native SQL module of the database interface passes a description of the type, size, and memory location of the ABAP fields used to the database system. The relevant database system operations are usually used to access and convert the data. You can find details of these operations in the manuals for the programming interface of the relevant database system. In some cases, Native SQL also performs other compatibility checks.
The documentation from the various database manufacturers provides detailed lists of combinations of ABAP data types and database column types, both for storing ABAP field values in database tables (INSERT, UPDATE) and for reading database contents into ABAP fields (SELECT). You can also apply these descriptions for the input and output parameters of database procedures. Any combinations not listed there are undefined, and should not be used.
The following sections provide details of the data types and conversions for individual databases. Although they are database-specific, there are also some common features.
Recommended type combinations are underlined. Only for these combinations is behavior guaranteed from release to release. For any other combinations, you should assume that the description only applies to the specified release.
The results of conversions are listed in a results column:
"OK": The conversion can be performed without loss of data.
Operations that fail are indicated by their SQL error code. Errors of this kind always lead to program termination and an ABAP short dump.
In some cases, data is transferred without an SQL error occurring. However, the data is truncated, rounded, or otherwise unusable:
Right truncation.
"Left" or "right" applies to the normal way of writing a value. So, for example, if a number is truncated, its decimal places are affected.
: Left truncation
: Number is rounded up or down during conversion
: A number that was "too small" is rounded to 0 (underflow)
: The conversion result is undefined.
There are several possible results. The concrete result is either not known at all, or can only be described using a set of rules that is too complicated for practical use.
: The conversion returns the SQL value NULL.
: The conversion is performed without fields and unchecked.
The original data is converted, but without its format being checked. The result may therefore be a value invalid for the result type, which cannot be processed further. An example of this is a date field containing the value "99999999" or "abcdefgh" after conversion.
Combinations of ABAP data type and database column type can be divided into finer subcategories. Here, for example, using the transfer direction ABAP ® database (INSERT, UPDATE):
If the width of the ABAP field is greater than that of the database column, the ABAP field may contain values for which there is not enough space in the database column. This can produce other cases: The concrete data value in ABAP finds space in the database column, or not.
If the ABAP field is at most as long as the database column, there is always space for the ABAP value in the database column.
Some types, such as numeric columns, expect values in a particular format. This is particularly important in connection with character types, for example, when you want to write an ABAP character field (type C) into an integer column.
Reward pts if found usefull :)
regards
Sathish -
Hi
In our application we are using Swing-clients that access our Informix database through CMP beans in SUN One 2004 Q2 appserver.
We thought we could rely on the database constraints when creating and updating ie. if a column in a table violated the constraint the native Informix errorcode and info could be retrieved/exposed to our applicationcode.
Now it doesn't seem like this, all we get is a corba marshalling exception.
Is there really noway to inform our sessionbeans of what native SQL error occured ? Informix have a error-structure and from that naive structure you can extract information about what constraint was violated - a useful information when trying to find the errors.Hi,
finally I could solve this problem by myself.
First of all i used the wrong lookup name (deployedAdapters/testPMF).
Right one's are
- java:comp/env/testPMF
- deployedAdapters/testPMF/shareable/testPMF
Additionally I didn't get it working with an DataSource created by the Visual Administrator. So I deployed a DataSource with my EAR project using data-sources.xml
I hope this is helpfull for other developers having this problem
peter -
While running the livecache server test a native sql error occures
We are using scm4.1 livecache 7.5.0 And every time we are running the livecache test program he is dumping
whith the following dump
patch level scm & scm_basis is 8
Runtime Errors DBIF_DSQL2_SQL_ERROR
Except. CX_SY_NATIVE_SQL_ERROR
Date and Time 31.10.2005 16:50:55
ShrtText
An SQL error occurred when executing Native SQL.
What happened?
Error 600 occurred in the current database connection "LCA".
What can you do?
Print out the error message (using the "Print" function)
and make a note of the actions and input that caused the
error.
To resolve the problem, contact your SAP system administrator.
You can use transaction ST22 (ABAP Dump Analysis) to view and administer
termination messages, especially those beyond their normal deletion
date.
is especially useful if you want to keep a particular message.
How to correct the error
Database error text........: "Work rolled back: DbpError -28814 in
APS_ORDER_CH"
Database error code .......: 600
Triggering SQL statement...: " ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? or'"
Internal call code.........: "[DBDS/NEW DSQL]"
Please check the entries in the system log (Transaction SM21).
You may able to find an interim solution to the problem
in the SAP note system. If you have access to the note system yourself,
use the following search criteria:
"DBIF_DSQL2_SQL_ERROR" CX_SY_NATIVE_SQL_ERRORC
"/SAPAPO/SAPLOM_PLANNING" or "/SAPAPO/LOM_PLANNINGU08"
"/SAPAPO/OM_ORDER_CHANGE"
If you cannot solve the problem yourself and you wish to send
an error message to SAP, include the following documents:
1. A printout of the problem description (short dump)
To obtain this, select in the current display "System->List->
Save->Local File (unconverted)".
2. A suitable printout of the system log
To obtain this, call the system log through transaction SM21.
Limit the time interval to 10 minutes before and 5 minutes
after the short dump. In the display, then select the function
"System->List->Save->Local File (unconverted)".
3. If the programs are your own programs or modified SAP programs,
supply the source code.
To do this, select the Editor function "Further Utilities->
Upload/Download->Download".
4. Details regarding the conditions under which the error occurred
or which actions and input led to the error.
The exception must either be prevented, caught within the procedure
"/SAPAPO/OM_ORDER_CHANGE"
"(FUNCTION)", or declared in the procedure's RAISING clause.
To prevent the exception, note the following:
System environment
SAP Release.............. "640"
Application server....... "bebruap2"
Network address.......... "195.213.49.227"
Operating system......... "Windows NT"
Release.................. "5.2"
Hardware type............ "4x Intel 801586"
Character length......... 16 Bits
Pointer length........... 32 Bits
Work process number...... 1
Short dump setting....... "full"
Database server.......... "BEBRUAP2"
Database type............ "MSSQL"
Database name............ "APD"
Database owner........... "apd"
Character set............ "C"
SAP kernel............... "640"
Created on............... "Aug 23 2005 00:00:49"
Created in............... "NT 5.0 2195 Service Pack 4 x86 MS VC++ 13.10"
Database version......... "SQL_Server_8.00 "
Patch level.............. "87"
Patch text............... " "
Supported environment....
Database................. "MSSQL 7.00.699 or higher, MSSQL 8.00.194"
SAP database version..... "640"
Operating system......... "Windows NT 5.0, Windows NT 5.1, Windows NT 5.2"
Memory usage.............
Roll..................... 8176
EM....................... 24040336
Heap..................... 0
Page..................... 1687552
MM Used.................. 1516920
MM Free.................. 572032
SAP Release.............. "640"
User and Transaction
Client.............. 000
User................ "CGRAULS"
Language key........ "E"
Transaction......... "/SAPAPO/OM03 "
Program............. "/SAPAPO/SAPLOM_PLANNING"
Screen.............. "SAPMSSY0 1000"
Screen line......... 6
Information on where terminated
The termination occurred in the ABAP program "/SAPAPO/SAPLOM_PLANNING" in
"/SAPAPO/OM_ORDER_CHANGE".
The main program was "/SAPAPO/OM_TB_FLOW_QUANTITY ".
The termination occurred in line 91 of the source code of the (Include)
program "/SAPAPO/LOM_PLANNINGU08"
of the source code of program "/SAPAPO/LOM_PLANNINGU08" (when calling the
editor 910).
Processing was terminated because the exception "CX_SY_NATIVE_SQL_ERROR"
occurred in the
procedure "/SAPAPO/OM_ORDER_CHANGE" "(FUNCTION)" but was not handled locally,
not declared in the
RAISING clause of the procedure.
The procedure is in the program "/SAPAPO/SAPLOM_PLANNING ". Its source code
starts in line 5
of the (Include) program "/SAPAPO/LOM_PLANNING$08 ".
Source Code Extract
Line
SourceCde
61
is_gen_params-simversion
62
is_gen_params-dont_set_netchg_flag
63
space.
64
65
Kontrollstruktur IS_GET_CHANGED_OPTIONS anpassen.
66
IF NOT et_changed_orders IS REQUESTED.
67
is_get_changed_options-send_chg_top_order = gc_false.
68
ENDIF.
69
IF NOT et_changed_cap_reqs IS REQUESTED.
70
is_get_changed_options-send_chg_cap_req = gc_false.
71
ENDIF.
72
IF NOT et_changed_io_nodes IS REQUESTED.
73
is_get_changed_options-send_chg_ionode = gc_false.
74
ENDIF.
75
IF NOT et_changed_io_pp_nodes IS REQUESTED.
76
is_get_changed_options-send_chg_io_pp = gc_false.
77
ENDIF.
78
IF NOT et_changed_pegids IS REQUESTED.
79
is_get_changed_options-send_chg_pegid = gc_false.
80
ENDIF.
81
IF NOT et_deleted_fix_pegging IS REQUESTED.
82
is_get_changed_options-send_del_fix_peg = gc_false.
83
ENDIF.
84
start_function 'OM_ORDER_CHANGE'. "#EC *
85
Verbindung zum liveCache aufbauen
86
check_server.
87
connect_to_livecache.
88
COM-Routine zum Anlegen bzw. Überschreiben eines Zeitstrahls
89
90
EXEC sql.
>>>>>
execute procedure "APS_ORDER_CHANGE" (
92
in :ls_gen_com_params,
93
out :lv_rc,
94
in :et_rc,
95
in :it_order_method,
96
in :it_ordkeys,
97
in :it_ordmaps,
98
in :it_orders,
99
in :it_activities,
100
in :it_mode,
101
in :it_cap_reqs,
102
in :it_positions,
103
in :it_inputs,
104
in :it_outputs,
105
in :it_prodflow,
106
in :it_intern_constraints,
107
in :it_extern_constraints,
108
in :it_charact_val_acts,
109
in :it_charact_req_inpnode,
110
in :it_charact_val_outnode,
Contents of system fields
Name
Val.
SY-SUBRC
0
SY-INDEX
0
SY-TABIX
1
SY-DBCNT
1
SY-FDPOS
0
SY-LSIND
0
SY-PAGNO
0
SY-LINNO
1
SY-COLNO
1
SY-PFKEY
SY-UCOMM
SY-TITLE
Flow Quantity Test
SY-MSGTY
S
SY-MSGID
/SAPAPO/OM_TEST
SY-MSGNO
001
SY-MSGV1
Create transSim
SY-MSGV2
SY-MSGV3
SY-MSGV4
Active Calls/Events
No. Ty. Program Include Line
Name
3 FUNCTION /SAPAPO/SAPLOM_PLANNING /SAPAPO/LOM_PLANNINGU08 91
/SAPAPO/OM_ORDER_CHANGE
2 FORM /SAPAPO/OM_TB_FLOW_QUANTITY /SAPAPO/OM_TB_FLOW_QUANTITY 802
CHANGE_DATA
1 EVENT /SAPAPO/OM_TB_FLOW_QUANTITY /SAPAPO/OM_TB_FLOW_QUANTITY 11
START-OF-SELECTION
Chosen variables
Name
Val.
No. 3 Ty. FUNCTION
Name /SAPAPO/OM_ORDER_CHANGE
IS_ATP_INFO
01ATP0000001~CGRAULSXX##
334553333333744545455500
011400000001E37215C38800
000000000000000000000000
000000000000000000000000
IS_CONTROLPARAMETERS
霁က#ం̂⍱㔒鲔#####
2222222222222222222222001007190000022
0000000000000000000000100221240000100
0000000000000000000000910002390000000
0000000000000000000000700C335C000C000
IS_GEN_PARAMS
01PLV0000001~CGRAULS
3354533333337445454522222
010C60000001E37215C300000
0000000000000000000000000
0000000000000000000000000
IS_GET_CHANGED_OPTIONS
2222222
0000000
0000000
0000000
IT_ACTIVITIES
Table IT_274[1x256]
PROGRAM=/SAPAPO/OM_TB_FLOW_QUANTITYFORM=CHANGE_DATADATA=LT_ACTIVITIES
Table reference: 41
TABH+ 0(20) = 5087FFDF00000000000000002900000012010000
TABH+ 20(20) = 0100000000010000FFFFFFFF0487000000290000
TABH+ 40( 8) = 10000000C1308000
store = 0x5087FFDF
ext1 = 0x00000000
shmId = 0 (0x00000000)
id = 41 (0x29000000)
label = 274 (0x12010000)
fill = 1 (0x01000000)
leng = 256 (0x00010000)
loop = -1 (0xFFFFFFFF)
xtyp = TYPE#000205
occu = 16 (0x10000000)
access = 1 (ItAccessStandard)
idxKind = 0 (ItIndexNone)
uniKind = 2 (ItUniqueNon)
keyKind = 1 (default)
cmpMode = 8 (cmpManyEq)
occu0 = 1
collHash = 0
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 0
sharedWithShmTab = 0
isShmLockId = 0
gcKind = 0
isUsed = 1
>>>>> Shareable Table Header Data <<<<<
tabi = 0x180112E0
pghook = 0x00000000
idxPtr = 0x00000000
refCount = 0 (0x00000000)
tstRefCount = 0 (0x00000000)
lineAdmin = 16 (0x10000000)
lineAlloc = 16 (0x10000000)
store_id = 126 (0x7E000000)
shmIsReadOnly = 0 (0x00000000)
>>>>> 1st level extension part <<<<<
regHook = Not allocated
hsdir = Not allocated
ext2 = Not allocated
>>>>> 2nd level extension part <<<<<
tabhBack = Not allocated
delta_head = Not allocated
pb_func = Not allocated
pb_handle = Not allocated
IT_CAP_REQS
Table IT_276[1x112]
PROGRAM=/SAPAPO/OM_TB_FLOW_QUANTITYFORM=CHANGE_DATADATA=LT_CAP_REQS
Table reference: 39
TABH+ 0(20) = 48BB06E000000000000000002700000014010000
TABH+ 20(20) = 0100000070000000FFFFFFFF04870000C0290000
TABH+ 40( 8) = 10000000C1308000
store = 0x48BB06E0
ext1 = 0x00000000
shmId = 0 (0x00000000)
id = 39 (0x27000000)
label = 276 (0x14010000)
fill = 1 (0x01000000)
leng = 112 (0x70000000)
loop = -1 (0xFFFFFFFF)
xtyp = TYPE#000209
occu = 16 (0x10000000)
access = 1 (ItAccessStandard)
idxKind = 0 (ItIndexNone)
uniKind = 2 (ItUniqueNon)
keyKind = 1 (default)
cmpMode = 8 (cmpManyEq)
occu0 = 1
collHash = 0
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 0
sharedWithShmTab = 0
isShmLockId = 0
gcKind = 0
isUsed = 1
>>>>> Shareable Table Header Data <<<<<
tabi = 0x188D04E0
pghook = 0x00000000
idxPtr = 0x00000000
refCount = 0 (0x00000000)
tstRefCount = 0 (0x00000000)
lineAdmin = 16 (0x10000000)
lineAlloc = 16 (0x10000000)
store_id = 124 (0x7C000000)
shmIsReadOnly = 0 (0x00000000)
>>>>> 1st level extension part <<<<<
regHook = Not allocated
hsdir = Not allocated
ext2 = Not allocated
>>>>> 2nd level extension part <<<<<
tabhBack = Not allocated
delta_head = Not allocated
pb_func = Not allocated
pb_handle = Not allocated
IT_CHARACT_REQ_INPNODE
Table IT_418[0x140]
FUNCTION=/SAPAPO/OM_ORDER_CHANGEDATA=IT_CHARACT_REQ_INPNODE
Table reference: 32
TABH+ 0(20) = 00000000000000000000000020000000A2010000
TABH+ 20(20) = 000000008C000000FFFFFFFF04870000301D0000
TABH+ 40( 8) = 10000000C1308000
store = 0x00000000
ext1 = 0x00000000
shmId = 0 (0x00000000)
id = 32 (0x20000000)
label = 418 (0xA2010000)
fill = 0 (0x00000000)
leng = 140 (0x8C000000)
loop = -1 (0xFFFFFFFF)
xtyp = TYPE#000142
occu = 16 (0x10000000)
access = 1 (ItAccessStandard)
idxKind = 0 (ItIndexNone)
uniKind = 2 (ItUniqueNon)
keyKind = 1 (default)
cmpMode = 8 (cmpManyEq)
occu0 = 1
collHash = 0
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 0
sharedWithShmTab = 0
isShmLockId = 0
gcKind = 0
isUsed = 1
>>>>> Shareable Table Header Data <<<<<
tabi = Not allocated
pghook = Not allocated
idxPtr = Not allocated
refCount = Not allocated
tstRefCount = Not allocated
lineAdmin = Not allocated
lineAlloc = Not allocated
store_id = Not allocated
shmIsReadOnly = Not allocated
>>>>> 1st level extension part <<<<<
regHook = Not allocated
hsdir = Not allocated
ext2 = Not allocated
>>>>> 2nd level extension part <<<<<
tabhBack = Not allocated
delta_head = Not allocated
pb_func = Not allocated
pb_handle = Not allocated
IT_CHARACT_VAL_ACTS
Table IT_417[0x156]
FUNCTION=/SAPAPO/OM_ORDER_CHANGEDATA=IT_CHARACT_VAL_ACTS
Table reference: 50
TABH+ 0(20) = 00000000000000000000000032000000A1010000
TABH+ 20(20) = 000000009C000000FFFFFFFF04870000901D0000
TABH+ 40( 8) = 10000000C1308000
store = 0x00000000
ext1 = 0x00000000
shmId = 0 (0x00000000)
id = 50 (0x32000000)
label = 417 (0xA1010000)
fill = 0 (0x00000000)
leng = 156 (0x9C000000)
loop = -1 (0xFFFFFFFF)
xtyp = TYPE#000144
occu = 16 (0x10000000)
access = 1 (ItAccessStandard)
idxKind = 0 (ItIndexNone)
uniKind = 2 (ItUniqueNon)
keyKind = 1 (default)
cmpMode = 8 (cmpManyEq)
occu0 = 1
collHash = 0
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 0
sharedWithShmTab = 0
isShmLockId = 0
gcKind = 0
isUsed = 1
>>>>> Shareable Table Header Data <<<<<
tabi = Not allocated
pghook = Not allocated
idxPtr = Not allocated
refCount = Not allocated
tstRefCount = Not allocated
lineAdmin = Not allocated
lineAlloc = Not allocated
store_id = Not allocated
shmIsReadOnly = Not allocated
>>>>> 1st level extension part <<<<<
regHook = Not allocated
hsdir = Not allocated
ext2 = Not allocated
>>>>> 2nd level extension part <<<<<
tabhBack = Not allocated
delta_head = Not allocated
pb_func = Not allocated
pb_handle = Not allocated
IT_CHARACT_VAL_OUTNODE
Table IT_419[0x156]
FUNCTION=/SAPAPO/OM_ORDER_CHANGEDATA=IT_CHARACT_VAL_OUTNODE
Table reference: 60
TABH+ 0(20) = 0000000000000000000000003C000000A3010000
TABH+ 20(20) = 000000009C000000FFFFFFFF04870000901D0000
TABH+ 40( 8) = 10000000C1308000
store = 0x00000000
ext1 = 0x00000000
shmId = 0 (0x00000000)
id = 60 (0x3C000000)
label = 419 (0xA3010000)
fill = 0 (0x00000000)
leng = 156 (0x9C000000)
loop = -1 (0xFFFFFFFF)
xtyp = TYPE#000144
occu = 16 (0x10000000)
access = 1 (ItAccessStandard)
idxKind = 0 (ItIndexNone)
uniKind = 2 (ItUniqueNon)
keyKind = 1 (default)
cmpMode = 8 (cmpManyEq)
occu0 = 1
collHash = 0
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 0
sharedWithShmTab = 0
isShmLockId = 0
gcKind = 0
isUsed = 1
>>>>> Shareable Table Header Data <<<<<
tabi = Not allocated
pghook = Not allocated
idxPtr = Not allocated
refCount = Not allocated
tstRefCount = Not allocated
lineAdmin = Not allocated
lineAlloc = Not allocated
store_id = Not allocated
shmIsReadOnly = Not allocated
>>>>> 1st level extension part <<<<<
regHook = Not allocated
hsdir = Not allocated
ext2 = Not allocated
>>>>> 2nd level extension part <<<<<
tabhBack = Not allocated
delta_head = Not allocated
pb_func = Not allocated
pb_handle = Not allocated
IT_EXTERN_CONSTRAINTS
Table IT_416[0x124]
FUNCTION=/SAPAPO/OM_ORDER_CHANGEDATA=IT_EXTERN_CONSTRAINTS
Table reference: 71
TABH+ 0(20) = 00000000000000000000000047000000A0010000
TABH+ 20(20) = 000000007C000000FFFFFFFF04870000E02A0000
TABH+ 40( 8) = 10000000C1308000
store = 0x00000000
ext1 = 0x00000000
shmId = 0 (0x00000000)
id = 71 (0x47000000)
label = 416 (0xA0010000)
fill = 0 (0x00000000)
leng = 124 (0x7C000000)
loop = -1 (0xFFFFFFFF)
xtyp = TYPE#000215
occu = 16 (0x10000000)
access = 1 (ItAccessStandard)
idxKind = 0 (ItIndexNone)
uniKind = 2 (ItUniqueNon)
keyKind = 1 (default)
cmpMode = 8 (cmpManyEq)
occu0 = 1
collHash = 0
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 0
sharedWithShmTab = 0
isShmLockId = 0
gcKind = 0
isUsed = 1
>>>>> Shareable Table Header Data <<<<<
tabi = Not allocated
pghook = Not allocated
idxPtr = Not allocated
refCount = Not allocated
tstRefCount = Not allocated
lineAdmin = Not allocated
lineAlloc = Not allocated
store_id = Not allocated
shmIsReadOnly = Not allocated
>>>>> 1st level extension part <<<<<
regHook = Not allocated
hsdir = Not allocated
ext2 = Not allocated
>>>>> 2nd level extension part <<<<<
tabhBack = Not allocated
delta_head = Not allocated
pb_func = Not allocated
pb_handle = Not allocated
IT_INPUTS
Table IT_278[1x420]
PROGRAM=/SAPAPO/OM_TB_FLOW_QUANTITYFORM=CHANGE_DATADATA=LT_INPUTS
Table reference: 63
TABH+ 0(20) = 087400E0C0E303E0000000003F00000016010000
TABH+ 20(20) = 01000000A4010000FFFFFFFF04870000202A0000
TABH+ 40( 8) = 10000000C1308000
store = 0x087400E0
ext1 = 0xC0E303E0
shmId = 0 (0x00000000)
id = 63 (0x3F000000)
label = 278 (0x16010000)
fill = 1 (0x01000000)
leng = 420 (0xA4010000)
loop = -1 (0xFFFFFFFF)
xtyp = TYPE#000211
occu = 16 (0x10000000)
access = 1 (ItAccessStandard)
idxKind = 0 (ItIndexNone)
uniKind = 2 (ItUniqueNon)
keyKind = 1 (default)
cmpMode = 8 (cmpManyEq)
occu0 = 1
collHash = 0
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 0
sharedWithShmTab = 0
isShmLockId = 0
gcKind = 0
isUsed = 1
>>>>> Shareable Table Header Data <<<<<
tabi = 0x78DC11E0
pghook = 0x00000000
idxPtr = 0x00000000
refCount = 0 (0x00000000)
tstRefCount = 0 (0x00000000)
lineAdmin = 16 (0x10000000)
lineAlloc = 16 (0x10000000)
store_id = 123 (0x7B000000)
shmIsReadOnly = 0 (0x00000000)
>>>>> 1st level extension part <<<<<
regHook = 0x2029FFDF
hsdir = 0x00000000
ext2 = 0x00000000
>>>>> 2nd level extension part <<<<<
tabhBack = Not allocated
delta_head = Not allocated
pb_func = Not allocated
pb_handle = Not allocated
IT_INTERN_CONSTRAINTS
Table IT_415[0x124]
FUNCTION=/SAPAPO/OM_ORDER_CHANGEDATA=IT_INTERN_CONSTRAINTS
Table reference: 49
TABH+ 0(20) = 000000000000000000000000310000009F010000
TABH+ 20(20) = 000000007C000000FFFFFFFF04870000E02A0000
TABH+ 40( 8) = 10000000C1308000
store = 0x00000000
ext1 = 0x00000000
shmId = 0 (0x00000000)
id = 49 (0x31000000)
label = 415 (0x9F010000)
fill = 0 (0x00000000)
leng = 124 (0x7C000000)
loop = -1 (0xFFFFFFFF)
xtyp = TYPE#000215
occu = 16 (0x10000000)
access = 1 (ItAccessStandard)
idxKind = 0 (ItIndexNone)
uniKind = 2 (ItUniqueNon)
keyKind = 1 (default)
cmpMode = 8 (cmpManyEq)
occu0 = 1
collHash = 0
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 0
sharedWithShmTab = 0
isShmLockId = 0
gcKind = 0
isUsed = 1
>>>>> Shareable Table Header Data <<<<<
tabi = Not allocated
pghook = Not allocated
idxPtr = Not allocated
refCount = Not allocated
tstRefCount = Not allocated
lineAdmin = Not allocated
lineAlloc = Not allocated
store_id = Not allocated
shmIsReadOnly = Not allocated
>>>>> 1st level extension part <<<<<
regHook = Not allocated
hsdir = Not allocated
ext2 = Not allocated
>>>>> 2nd level extension part <<<<<
tabhBack = Not allocated
delta_head = Not allocated
pb_func = Not allocated
pb_handle = Not allocated
IT_MODE
Table IT_275[1x164]
PROGRAM=/SAPAPO/OM_TB_FLOW_QUANTITYFORM=CHANGE_DATADATA=LT_MODES
Table reference: 52
TABH+ 0(20) = A03C00E000000000000000003400000013010000
TABH+ 20(20) = 01000000A4000000FFFFFFFF0487000060290000
TABH+ 40( 8) = 10000000C1308000
store = 0xA03C00E0
ext1 = 0x00000000
shmId = 0 (0x00000000)
id = 52 (0x34000000)
label = 275 (0x13010000)
fill = 1 (0x01000000)
leng = 164 (0xA4000000)
loop = -1 (0xFFFFFFFF)
xtyp = TYPE#000207
occu = 16 (0x10000000)
access = 1 (ItAccessStandard)
idxKind = 0 (ItIndexNone)
uniKind = 2 (ItUniqueNon)
keyKind = 1 (default)
cmpMode = 8 (cmpManyEq)
occu0 = 1
collHash = 0
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 0
sharedWithShmTab = 0
isShmLockId = 0
gcKind = 0
isUsed = 1
>>>>> Shareable Table Header Data <<<<<
tabi = 0xC8F611E0
pghook = 0x00000000
idxPtr = 0x00000000
refCount = 0 (0x00000000)
tstRefCount = 0 (0x00000000)
lineAdmin = 16 (0x10000000)
lineAlloc = 16 (0x10000000)
store_id = 125 (0x7D000000)
shmIsReadOnly = 0 (0x00000000)
>>>>> 1st level extension part <<<<<
regHook = Not allocated
hsdir = Not allocated
ext2 = Not allocated
>>>>> 2nd level extension part <<<<<
tabhBack = Not allocated
delta_head = Not allocated
pb_func = Not allocated
pb_handle = Not allocated
IT_ORDERS
Table IT_293[1x320]
PROGRAM=/SAPAPO/OM_TB_FLOW_QUANTITYFORM=CHANGE_DATADATA=LT_ORDERS1
Table reference: 47
TABH+ 0(20) = 20B403E000000000000000002F00000025010000
TABH+ 20(20) = 0100000040010000FFFFFFFF0400000030380000
TABH+ 40( 8) = 01000000C1308000
store = 0x20B403E0
ext1 = 0x00000000
shmId = 0 (0x00000000)
id = 47 (0x2F000000)
label = 293 (0x25010000)
fill = 1 (0x01000000)
leng = 320 (0x40010000)
loop = -1 (0xFFFFFFFF)
xtyp = TYPE#000286
occu = 1 (0x01000000)
access = 1 (ItAccessStandard)
idxKind = 0 (ItIndexNone)
uniKind = 2 (ItUniqueNon)
keyKind = 1 (default)
cmpMode = 8 (cmpManyEq)
occu0 = 1
collHash = 0
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 0
sharedWithShmTab = 0
isShmLockId = 0
gcKind = 0
isUsed = 1
>>>>> Shareable Table Header Data <<<<<
tabi = 0x9080FFDF
pghook = 0x00000000
idxPtr = 0x00000000
refCount = 0 (0x00000000)
tstRefCount = 0 (0x00000000)
lineAdmin = 1 (0x01000000)
lineAlloc = 1 (0x01000000)
store_id = 130 (0x82000000)
shmIsReadOnly = 0 (0x00000000)
>>>>> 1st level extension part <<<<<
regHook = Not allocated
hsdir = Not allocated
ext2 = Not allocated
>>>>> 2nd level extension part <<<<<
tabhBack = Not allocated
delta_head = Not allocated
pb_func = Not allocated
pb_handle = Not allocated
IT_ORDER_METHOD
Table IT_268[2x62]
PROGRAM=/SAPAPO/OM_TB_FLOW_QUANTITYFORM=CHANGE_DATADATA=LT_ORDER_METHOD
Table reference: 51
TABH+ 0(20) = 8882FFDF0000000000000000330000000C010000
TABH+ 20(20) = 020000003E000000FFFFFFFF04000000B0360000
TABH+ 40( 8) = 10000000C1248000
store = 0x8882FFDF
ext1 = 0x00000000
shmId = 0 (0x00000000)
id = 51 (0x33000000)
label = 268 (0x0C010000)
fill = 2 (0x02000000)
leng = 62 (0x3E000000)
loop = -1 (0xFFFFFFFF)
xtyp = TYPE#000278
occu = 16 (0x10000000)
access = 1 (ItAccessStandard)
idxKind = 0 (ItIndexNone)
uniKind = 2 (ItUniqueNon)
keyKind = 1 (default)
cmpMode = 2 (cmpSingleMcmpR)
occu0 = 1
collHash = 0
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 0
sharedWithShmTab = 0
isShmLockId = 0
gcKind = 0
isUsed = 1
>>>>> Shareable Table Header Data <<<<<
tabi = 0x0868FFDF
pghook = 0x00000000
idxPtr = 0x00000000
refCount = 0 (0x00000000)
tstRefCount = 0 (0x00000000)
lineAdmin = 16 (0x10000000)
lineAlloc = 16 (0x10000000)
store_id = 122 (0x7A000000)
shmIsReadOnly = 0 (0x00000000)
>>>>> 1st level extension part <<<<<
regHook = Not allocated
hsdir = Not allocated
ext2 = Not allocated
>>>>> 2nd level extension part <<<<<
tabhBack = Not allocated
delta_head = Not allocated
pb_func = Not allocated
pb_handle = Not allocated
IT_ORDKEYS
Table IT_271[1x332]
PROGRAM=/SAPAPO/OM_TB_FLOW_QUANTITYFORM=CHANGE_DATADATA=LT_ORDKEYS
Table reference: 29
TABH+ 0(20) = 80E303E000000000000000001D0000000F010000
TABH+ 20(20) = 010000004C010000FFFFFFFF04870000E0270000
TABH+ 40( 8) = 10000000C1308000
store = 0x80E303E0
ext1 = 0x00000000
shmId = 0 (0x00000000)
id = 29 (0x1D000000)
label = 271 (0x0F010000)
fill = 1 (0x01000000)
leng = 332 (0x4C010000)
loop = -1 (0xFFFFFFFF)
xtyp = TYPE#000199
occu = 16 (0x10000000)
access = 1 (ItAccessStandard)
idxKind = 0 (ItIndexNone)
uniKind = 2 (ItUniqueNon)
keyKind = 1 (default)
cmpMode = 8 (cmpManyEq)
occu0 = 1
collHash = 0
groupCntl = 0
rfc = 0
unShareable = 0
mightBeShared = 0
sharedWithShmTab = 0Hi,
the error DbpError -28814 denotes that an object cannot be found.
Can you maybe tell me your exact liveCache version (incl. Build level) and LCA Build?
Additionally, please copy the relevant error information from the file (/sapdb/data/wrk/<SID>/)knldiag.err into this thread.
Which exact 'liveCache test program' are your referring to (which of the /SAPAPO/... transactions)?
Kind regards,
Roland -
True about updates through a view
hi frds
i just need the right answer for the choices mentioned below with explanation
plz help me
What is true about updates through a view?
A. You cannot update a view with group functions.
B. When you update a view group functions are automatically computed.
C. When you update a view only the constraints on the underlying table will be in effect.
D. When you update a view the constraints on the views always override the constraints on the underlying tables.And a very tricky only it is.
Peter, you are correct that view constraints are not enforced in the sense of PKs and FKS, but there are two other view constraints that are enforced.
SQL> CREATE TABLE t AS
2 SELECT rownum id, object_name
3 FROM all_objects
4 WHERE rownum < 11;
Table created.
SQL> CREATE VIEW t_read AS
2 SELECT * FROM t
3 WITH READ ONLY;
View created.
SQL> CREATE VIEW t_check AS
2 SELECT * FROM t
3 WHERE mod(id,2) = 0
4 WITH CHECK OPTION;
View created.
SQL> CREATE VIEW t_nocheck AS
2 SELECT * FROM t
3 WHERE MOD(id, 2) = 0;
View created.
SQL> INSERT INTO t_read VALUES (100, 'READ ONLY');
INSERT INTO t_read VALUES (100, 'READ ONLY')
ERROR at line 1:
ORA-01733: virtual column not allowed here
SQL> INSERT INTO t_check VALUES (100, 'EVEN ID');
1 row created.
SQL> INSERT INTO t_check VALUES (101, 'ODD ID');
INSERT INTO t_check VALUES (101, 'ODD ID')
ERROR at line 1:
ORA-01402: view WITH CHECK OPTION where-clause violation
SQL> INSERT INTO t_nocheck VALUES(100, 'EVEN ID');
1 row created.
SQL> INSERT INTO t_nocheck VALUES(101, 'ODD ID');
1 row created.
SQL> UPDATE t_check SET id = 201
2 WHERE id = 2;
UPDATE t_check SET id = 201
ERROR at line 1:
ORA-01402: view WITH CHECK OPTION where-clause violation
SQL> UPDATE t_nocheck SET id = 201
2 WHERE id = 2;
1 row updated.The WITH READ ONLY constraint bars all changes to the view. The WITH CHECK OPTION stops any changes that would make the record invisible to the view. It is essentially a CHECK constraint on the view.
John -
JDBC Receiver - Message Protocol = Native SQL String
Hi Friends
Has any one worked on JDBC Receiver with Message Protocol as <b>Native SQL String</b>?
If so, can you please send me a detailed scenario of it...like
the datatypes, message types, mappping.
Because if I use the Native SQL String, then I think I have to pass a simple SQL string to the receiver..
So how can I do that?
Regards,
Raju...Hi Raju,
This can be done using the following format,
<root>
<stmt>
<Customers action="SQL_DML">
<access> UPDATE Customers SET Name=$NAME$ WHERE Number='$NUMBER$
</access>
<key>
<NAME>ABC</NAME>
<NUMBER>000</NUMBER>
</key>
</Customers>
</stmt>
</root>
Just pass map the value to the correspondung fields in the KEY FIELD and it will work like you want, dynamically.
Regards,
bhavesh -
Passing data from abap-program to mssql database table thro native sql
Hi,
To pass the data from abap-program to mssql server,i have created database connection through dbco t.code.
now i am trying to get connection thro native sql but am not able to get it .Am working in ECC 5.0.
Could anyone help me on this.Did i miss anything?
i have tried Native-sql like this.
DATA: CON_NAME LIKE DBCON-CON_NAME VALUE 'BIW'.
EXEC SQL.
CONNECT TO :con_name AS 'C1'
ENDEXEC.
Thanks in advance.Hi,
Trying to do the same here, only using Oracle DB.
DATA: dbc TYPE DBCON_NAME VALUE 'BI'
TRY.
EXEC SQL.
CONNECT TO :dbc
ENDEXEC.
IF sy-subrc NE 0.
RAISE EXCEPTION TYPE cx_sy_native_sql_error.
ENDIF.
CATCH cx_sy_native_sql_error INTO oref_native_sql_error.
sql_emsg = oref_native_sql_error->get_text( ).
MESSAGE sql_emsg TYPE 'I'.
ENDTRY.
I keep getting the message 'Native SQL exception has occured' (because of the RAISE statement, I wonder how we can get a meaningfull error description).
Of course this can be a result of a number of network issues, so I'm trying to resolve this together with my BC admin.
I suggest the same to you..
In the meantime, if anyone can help out, it will be appreciated.
Regards,
SD -
Native sql DBCO, CONNECT statement short dump
Hi ALL ,
I am facing the problem here. please help me out in this.
i am trying to connce to the external database MSS, i made all the entries in the DBCO t-code and writing the follwoing native sql statement.
EXEC SQL.
CONNECT TO 'AAJ' AS 'V'
ENDEXEC.
EXEC SQL.
SET CONNECTION 'V'
ENDEXEC.
The above statement is not giving any error when i activate it but when i execute it is giving me shortdump error .
I already maintan entries in DBCON table or DBCO t-code
And also tel me once it is connect how can i access the data from MSS (Microsoft sql server)i mean what kind of statement.
helpfull answer will be rewarded.
Anees
9886358645
Message was edited by:
anees jawadNative SQL
Open SQL allows you to access database tables declared in the ABAP Dictionary regardless of the database platform that you R/3 System is using. Native SQL allows you to use database-specific SQL statements in an ABAP program. This means that you can use database tables that are not administered by the ABAP Dictionary, and therefore integrate data that is not part of the R/3 System.
As a rule, an ABAP program containing database-specific SQL statements will not run under different database systems. If your program will be used on more than one database platform, only use Open SQL statements.
Native SQL Statements in ABAP Programs
To use a Native SQL statement, you must precede it with the EXEC SQL statement, and follow it with the ENDEXEC statement as follows:
EXEC SQL [PERFORMING )
The parameters are separated by commas. You must also specify whether the parameter is for input (IN), output (OUT) or input and output (INOUT). For further information, refer to SAP Note 44977.
EXEC SQL
EXECUTE PROCEDURE proc1 ( IN , OUT :y )
ENDEXEC.
Cursor Processing
Cursor processing in Native SQL is similar to that in Open SQL:
OPEN
ENDIF.
ENDDO.
EXEC SQL.
CLOSE c1
ENDEXEC.
This example opens a cursor, reads data line by line, and closes the cursor again. As in Open SQL, SY-SUBRC indicates whether a line could be read.
Data Types and Conversions
Using Native SQL, you can
Transfer values from ABAP fields to the database
Read data from the database and process it in ABAP programs.
Native SQL works without the administrative data about database tables stored in the ABAP Dictionary. Consequently, it cannot perform all of the consistency checks used in Open SQL. This places a larger degree of responsibility on application developers to work with ABAP fields of the correct type. You should always ensure that the ABAP data type and the type of the database column are identical.
If the database table is not defined in the ABAP Dictionary, you cannot refer directly to its data type. In this case, you should create a uniform type description in the ABAP Dictionary, which can then be used by all application programs.
If the table is defined in the ABAP Dictionary, you should remember that the sequence of fields in the ABAP Dictionary definition may not be the same as the actual sequence of fields in the database. Using the asterisk (*) in the SELECT clause to read all columns into a corresponding work area would lead to meaningless results. In the worst case, it would cause an error.
The Native SQL module of the database interface passes a description of the type, size, and memory location of the ABAP fields used to the database system. The relevant database system operations are usually used to access and convert the data. You can find details of these operations in the manuals for the programming interface of the relevant database system. In some cases, Native SQL also performs other compatibility checks.
The documentation from the various database manufacturers provides detailed lists of combinations of ABAP data types and database column types, both for storing ABAP field values in database tables (INSERT, UPDATE) and for reading database contents into ABAP fields (SELECT). You can also apply these descriptions for the input and output parameters of database procedures. Any combinations not listed there are undefined, and should not be used.
The following sections provide details of the data types and conversions for individual databases. Although they are database-specific, there are also some common features.
Recommended type combinations are underlined. Only for these combinations is behavior guaranteed from release to release. For any other combinations, you should assume that the description only applies to the specified release.
The results of conversions are listed in a results column:
"OK": The conversion can be performed without loss of data.
Operations that fail are indicated by their SQL error code. Errors of this kind always lead to program termination and an ABAP short dump.
In some cases, data is transferred without an SQL error occurring. However, the data is truncated, rounded, or otherwise unusable:
Right truncation.
"Left" or "right" applies to the normal way of writing a value. So, for example, if a number is truncated, its decimal places are affected.
: Left truncation
: Number is rounded up or down during conversion
: A number that was "too small" is rounded to 0 (underflow)
: The conversion result is undefined.
There are several possible results. The concrete result is either not known at all, or can only be described using a set of rules that is too complicated for practical use.
: The conversion returns the SQL value NULL.
: The conversion is performed without fields and unchecked.
The original data is converted, but without its format being checked. The result may therefore be a value invalid for the result type, which cannot be processed further. An example of this is a date field containing the value "99999999" or "abcdefgh" after conversion.
Combinations of ABAP data type and database column type can be divided into finer subcategories. Here, for example, using the transfer direction ABAP ® database (INSERT, UPDATE):
If the width of the ABAP field is greater than that of the database column, the ABAP field may contain values for which there is not enough space in the database column. This can produce other cases: The concrete data value in ABAP finds space in the database column, or not.
If the ABAP field is at most as long as the database column, there is always space for the ABAP value in the database column.
Some types, such as numeric columns, expect values in a particular format. This is particularly important in connection with character types, for example, when you want to write an ABAP character field (type C) into an integer column.
Native SQL for Oracle
Native SQL for Informix
Native SQL for DB2 Common Server
http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb3b8b358411d1829f0000e829fbfe/content.htm
Maybe you are looking for
-
Ipod continuously turns on then off and makes clicking sound
Just today, after plugging my ipod into my computer and transferring voice memos, I unplugged my ipod and as soon as I did that, it shut down and began its continuous loop of turning on and off. It never fully boots up. Can anyone help me out with wh
-
Quicktime 7 wont work for windows 98...
does anyone know where i can download an older version of quicktime or an email i can use to contact these people to ask something similar. i have gone to download.com to find and older version of quicktime but cant find one.
-
Issues integrating niceScroll inside of nested symbol
So I have to produce a custom scrollbar for a client. Which means going to one of the JQuery scripts to create it. I saw a couple of posts about niceScroll, so I downloaded it. It works fine for a text area div that's on the main timeline. But my iss
-
I'm trying to realize a self-defined workflow using wd4a as the user dialog. But I wanna compose ABAP OO into workflow now, for using ABAP OO can help to clarify the workflow logic. So how to implement abap OO in UWL? Before I defined a task and assi
-
How do I update to the iOS 4.3?
I have a iPod forth generation and I tried to down load a app but it told me that I needed the iOS 4.3. How do I get it?