The comma's do not make a difference in this case as the same error appears.
Even with changing the DQL to update a single value and using r_object_id does not work.
UPDATE dm_extern_file objects
SET "a_plugin_id" [0] = '6701d72080000d01'
where r_object_id = '6101d7208000017e'
It appears as if it is something special to this table.
Main Topics
Browse All Topics





by: Rsulliv1Posted on 2009-11-02 at 22:46:19ID: 25726530
are you putting commas after each "set" except for the last?
update your code to:
update dm_extern_file object
set a_plugin_id [0]= '6701d72080000d01',
set a_location [0]= 'storage_02',
set a_config_name [0] = 'bciDevBase',
set a_platform [0]= 1
where name = 'test_04'
From the manual:
You can specify more than one update operation in a single statement. When an UPDATE...OBJECT
statement includes multiple operations, use commas to separate them. For example, the following
statement sets two properties and inserts a value into a repeating property. Notice the commas at the
end of each update operation clause:
UPDATE "dm_document" OBJECTS
SET "title" = 'A Cake Primer',
SET "subject" = 'cake',
INSERT "authors"[3] = 'georgette'
WHERE "r_object_id" = '090007354140004e'
The server processes the update operations in the order listed.
Setting a property value
To set the value of a single-valued or repeating property, use the following syntax:
set property_name [ [index] ] = value
The property_name argument is the name of the property. If the property is a repeating property, the
index identifes the position of the new value in the propertys list of values. The positions of the
values for a repeating property are numbered from zero. Enclose the index value in square brackets.
The value argument is the value to assign to the property. The value can be a literal or a subquery. If it
is a subquery, it cannot return more than one row. If it returns more than one row, the statement
returns an error.
Appending a value to a repeating property
To append a value to a repeating property, use the following syntax:
append [ n ] property_name = value
The property_name argument is the name of the property to which to append a new value. The
value argument specifes what value to add to the propertys ordered list of values. The value is
automatically added to the end of the repeating propertys list of values.
The value can be either a literal value or a subquery. The subquery can return any number of rows.
By default, the system appends a maximum of 20 rows. To override the default, use the [ n ] option
to defne how many rows to append. You can use any integer number (to append that number of
rows) or an asterisk (*) (to append all rows).
Inserting a value into a repeating property
To insert a value into the list of values for a repeating property, use the following syntax
insert property_name [ [index] ] = value
The property_name argument identifes the property. The index argument defnes where to insert the
new value. The positions of all values for a repeating property are numbered from zero. If you do not
include the index, the server automatically inserts the new value in position zero, as the frst element
in the ordered list. You must enclose the index in square brackets.
The value defnes the value that you want to insert. The value can be either a literal value or a
subquery. If it is a subquery, it cannot return more than one row. If it returns multiple rows, the
statement returns an error.
When you insert a value, all values that follow the inserted value are renumbered. For instance, when
you insert a value at position [5], the value formerly at position [5] is moved up to position [6].
Consequently, if you are inserting more than one value in the property (for example, if the statement
is in a program loop), be sure to increase the index number each time you insert a value.