ORA-00936: missing expression - LightSwitch

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for Oracle
Post Reply
Mottor
Posts: 5
Joined: Fri 12 Mar 2010 12:47

ORA-00936: missing expression - LightSwitch

Post by Mottor » Thu 16 Sep 2010 20:01

I have asked this question in Microsoft Visual Studio LightSwitch forum:
http://social.msdn.microsoft.com/Forums ... 310592ed41
Oracle (DevArt provider)

After waiting 20 minutes "Attach Data Source Wizard" to show my tables, I am selecting a table and click Finish.

If the table has no field named "ID" then I am getting the error: "unexpected parameters count". It is unexpected :)

If the table has this field it is another error comming:

"An error occured while executed the command definition. See the inner exception for details.

ORA-00936: missing expression "
Steve Hoag (MSFT, Moderator) told me to search the solution here.

You can also see the other question too:
http://social.msdn.microsoft.com/Forums ... 98ef19c4f3

I don't believe that this huge select statement is from your provider. That cannot be written from Oracle programmer. :)

StanislavK
Devart Team
Posts: 1710
Joined: Thu 03 Dec 2009 10:48

Post by StanislavK » Fri 17 Sep 2010 11:21

At the moment, dotConnect for Oracle does not provide support for Visual Studio LightSwitch. We plan to implement it but cannot provide any timeframe.

We will inform you here when Visual Studio LightSwitch is supported.

Mottor
Posts: 5
Joined: Fri 12 Mar 2010 12:47

Post by Mottor » Fri 17 Sep 2010 11:53

You shouldn't provide support. You should see where the error come from. They say that they are working with EF. You have support for EF.

And waht about the second question. Is this statement from you or from Microsoft:

Code: Select all

SELECT   "Project6".c2 AS c1,
         "Project6"."CatalogName" AS "CatalogName",
         "Project6"."SchemaName" AS "SchemaName",
         "Project6"."Name" AS "Name",
         "Project6".c1 AS c2,
         "Project6".c3 AS c3,
         "Project6".c4 AS c4,
         "Project6".c5 AS c5,
         "Project6".c6 AS c6,
         "Project6".c7 AS c7,
         "Project6".c8 AS c8,
         "Project6".c9 AS c9,
         "Project6".c10 AS c10,
         "Project6".c11 AS c11
    FROM (SELECT "Extent1"."CatalogName" AS "CatalogName",
                 "Extent1"."SchemaName" AS "SchemaName",
                 "Extent1"."Name" AS "Name",
                 "UnionAll1"."Name" AS c1,
                 "UnionAll1"."Ordinal" AS c2,
                 "UnionAll1"."IsNullable" AS c3,
                 "UnionAll1"."TypeName" AS c4,
                 "UnionAll1"."MaxLength" AS c5,
                 "UnionAll1"."Precision" AS c6,
                 "UnionAll1"."DateTimePrecision" AS c7,
                 "UnionAll1"."Scale" AS c8,
                 "UnionAll1"."IsIdentity" AS c9,
                 "UnionAll1"."IsStoreGenerated" AS c10,
                 CASE
                    WHEN ("Project5".c2 IS NULL) THEN 0
                    ELSE "Project5".c2
                 END AS c11
            FROM (
                  /*SViews {0B22944E-0F7B-48be-89B5-743B50E1FC06} {BFD32F32-EEE4-4826-9725-C489B0EE1ACC}*/
                  SELECT   v.owner || '.' || v.view_name AS "Id",
                           'Catalog1' AS "CatalogName",
                           v.owner AS "SchemaName",
                           v.view_name AS "Name",
                           v.text AS "ViewDefinition",
                           0 AS "IsUpdatable"
                      FROM SYS.all_views v LEFT OUTER JOIN user_tab_privs p
                           ON (    v.owner = p.owner
                               AND p.grantee = USER
                               AND p.table_name = v.view_name
                               AND (p."PRIVILEGE" = 'SELECT' OR p."PRIVILEGE" = 'EXECUTE'))
                     WHERE v.owner = USER OR p.grantee = USER
                  ORDER BY 3, 1) "Extent1"
                 INNER JOIN
                 (SELECT "Extent2"."Id" AS "Id",
                         "Extent2"."Name" AS "Name",
                         "Extent2"."Ordinal" AS "Ordinal",
                         "Extent2"."IsNullable" AS "IsNullable",
                         "Extent2"."TypeName" AS "TypeName",
                         "Extent2"."MaxLength" AS "MaxLength",
                         "Extent2"."Precision" AS "Precision",
                         "Extent2"."DateTimePrecision" AS "DateTimePrecision",
                         "Extent2"."Scale" AS "Scale",
                         "Extent2"."IsIdentity" AS "IsIdentity",
                         "Extent2"."IsStoreGenerated" AS "IsStoreGenerated",
                         4 AS c1,
                         "Extent2"."ParentId" AS "ParentId"
                    FROM (
                          /*STableColumns {4D35D67E-B0EE-45e6-BA55-3238B93342FB} {BFD32F32-EEE4-4826-9725-C489B0EE1ACC}*/
                          SELECT   t.owner || '.' || t.table_name || '.' || t.column_name AS "Id",
                                   t.owner || '.' || t.table_name AS "ParentId",
                                   column_name AS "Name",
                                   column_id AS "Ordinal",
                                   ...,
                                   ...,
                                   NULL AS "Default"
                              FROM SYS.all_tab_columns t LEFT OUTER JOIN user_tab_privs p
                                   ON (    t.owner = p.owner
                                       AND p.grantee = USER
                                       AND p.table_name = t.table_name
                                       AND (p."PRIVILEGE" = 'SELECT' OR p."PRIVILEGE" = 'EXECUTE'))
                             WHERE t.owner = USER OR p.grantee = USER
                          ORDER BY 2, 4) "Extent2"
                  UNION ALL
                  SELECT "Extent3"."Id" AS "Id",
                         "Extent3"."Name" AS "Name",
                         "Extent3"."Ordinal" AS "Ordinal",
                         "Extent3"."IsNullable" AS "IsNullable",
                         "Extent3"."TypeName" AS "TypeName",
                         "Extent3"."MaxLength" AS "MaxLength",
                         "Extent3"."Precision" AS "Precision",
                         "Extent3"."DateTimePrecision" AS "DateTimePrecision",
                         "Extent3"."Scale" AS "Scale",
                         "Extent3"."IsIdentity" AS "IsIdentity",
                         "Extent3"."IsStoreGenerated" AS "IsStoreGenerated",
                         0 AS c1,
                         "Extent3"."ParentId" AS "ParentId"
                    FROM (
                          /*SViewColumns {02C89419-DB97-4abb-9F1A-6B313FAE7866} {BFD32F32-EEE4-4826-9725-C489B0EE1ACC}*/
                          SELECT t.owner || '.' || t.table_name || '.' || t.column_name AS "Id",
                                 t.owner || '.' || t.table_name AS "ParentId",
                                 column_name AS "Name",
                                 column_id AS "Ordinal",
                                 ...,
                                 NULL AS "Default"
                            FROM SYS.all_tab_columns t LEFT OUTER JOIN user_tab_privs p
                                 ON (    t.owner = p.owner
                                     AND p.grantee = USER
                                     AND p.table_name = t.table_name
                                     AND (p."PRIVILEGE" = 'SELECT' OR p."PRIVILEGE" = 'EXECUTE'))
                           WHERE t.owner = USER OR p.grantee = USER) "Extent3") "UnionAll1"
                 ON (0 = "UnionAll1".c1) AND ("Extent1"."Id" = "UnionAll1"."ParentId")
                 LEFT OUTER JOIN
                 (SELECT "UnionAll2"."Id" AS c1,
                         1 AS c2
                    FROM (
                          /*SViewConstraints {0C61BE7A-8D9D-4bf1-97B0-449F70A9470D} {BFD32F32-EEE4-4826-9725-C489B0EE1ACC}*/
                          SELECT CAST (NULL AS VARCHAR2 (1)) AS "Id",
                                 CAST (NULL AS VARCHAR2 (1)) AS "ParentId",
                                 CAST (NULL AS VARCHAR2 (1)) AS "Name",
                                 CAST (NULL AS VARCHAR2 (1)) AS "ConstraintType",
                                 0 AS "IsDeferrable",
                                 0 AS "IsInitiallyDeferred",
                                 CAST (NULL AS VARCHAR2 (1)) AS "Expression",
                                 CAST (NULL AS VARCHAR2 (1)) AS "UpdateRule",
                                 CAST (NULL AS VARCHAR2 (1)) AS "DeleteRule"
                            FROM DUAL
                           WHERE 0 = 1) "Extent4"
                         INNER JOIN
                         (SELECT 10 AS c1,
                                 "Extent5"."ConstraintId" AS "ConstraintId",
                                 "Extent6"."Id" AS "Id"
                            FROM (
                                  /*SConstraintColumns {F2DCFD5C-8B38-4e6c-92A5-34493F5A9237} {BFD32F32-EEE4-4826-9725-C489B0EE1ACC}*/
                                  SELECT cons.owner || '.' || cons.constraint_name AS "ConstraintId",
                                         cols.owner || '.' || cols.table_name || '.' || cols.column_name AS "ColumnId"
                                    FROM SYS.all_cons_columns cols INNER JOIN SYS.all_constraints cons
                                         ON (cols.constraint_name = cons.constraint_name AND cols.owner = cons.owner)
                                         LEFT OUTER JOIN user_tab_privs p
                                         ON (    cols.owner = p.owner
                                             AND p.grantee = USER
                                             AND p.table_name = cols.table_name
                                             AND (p."PRIVILEGE" = 'SELECT' OR p."PRIVILEGE" = 'EXECUTE'))
                                   WHERE cons.owner = USER OR p.grantee = USER) "Extent5"
                                 INNER JOIN
                                 (
                                  /*STableColumns {4D35D67E-B0EE-45e6-BA55-3238B93342FB} {BFD32F32-EEE4-4826-9725-C489B0EE1ACC}*/
                                  SELECT   t.owner || '.' || t.table_name || '.' || t.column_name AS "Id",
                                           t.owner || '.' || t.table_name AS "ParentId",
                                           column_name AS "Name",
                                           column_id AS "Ordinal",
                                           ...,
                                           NULL AS "Default"
                                      FROM SYS.all_tab_columns t LEFT OUTER JOIN user_tab_privs p
                                           ON (    t.owner = p.owner
                                               AND p.grantee = USER
                                               AND p.table_name = t.table_name
                                               AND (p."PRIVILEGE" = 'SELECT' OR p."PRIVILEGE" = 'EXECUTE'))
                                     WHERE t.owner = USER OR p.grantee = USER
                                  ORDER BY 2, 4) "Extent6" ON "Extent6"."Id" = "Extent5"."ColumnId"
                          UNION ALL
                          SELECT 7 AS c1,
                                 "Extent7"."ConstraintId" AS "ConstraintId",
                                 "Extent8"."Id" AS "Id"
                            FROM (
                                  /*SViewConstraintColumns {5AA2F6A5-AA81-4724-8593-55D34067FFEC} {BFD32F32-EEE4-4826-9725-C489B0EE1ACC}*/
                                  SELECT CAST (NULL AS VARCHAR2 (1)) AS "ConstraintId",
                                         CAST (NULL AS VARCHAR2 (1)) AS "ColumnId"
                                    FROM DUAL
                                   WHERE 0 = 1) "Extent7"
                                 INNER JOIN
                                 (
                                  /*SViewColumns {02C89419-DB97-4abb-9F1A-6B313FAE7866} {BFD32F32-EEE4-4826-9725-C489B0EE1ACC}*/
                                  SELECT t.owner || '.' || t.table_name || '.' || t.column_name AS "Id",
                                         t.owner || '.' || t.table_name AS "ParentId",
                                         column_name AS "Name",
                                         column_id AS "Ordinal",
                                         CASE nullable
                                            WHEN 'Y' THEN 1
                                            ELSE 0
                                         END AS "IsNullable",
                                         ...,
                                         NULL AS "Default"
                                    FROM SYS.all_tab_columns t LEFT OUTER JOIN user_tab_privs p
                                         ON (    t.owner = p.owner
                                             AND p.grantee = USER
                                             AND p.table_name = t.table_name
                                             AND (p."PRIVILEGE" = 'SELECT' OR p."PRIVILEGE" = 'EXECUTE'))
                                   WHERE t.owner = USER OR p.grantee = USER) "Extent8" ON "Extent8"."Id" = "Extent7"."ColumnId"
                                 ) "UnionAll2" ON (7 = "UnionAll2".c1) AND ("Extent4"."Id" = "UnionAll2"."ConstraintId")
                   WHERE "Extent4"."ConstraintType" = 'PRIMARY KEY') "Project5" ON "UnionAll1"."Id" = "Project5".c1
                 ) "Project6"
ORDER BY "Project6"."SchemaName" ASC, "Project6"."Name" ASC, "Project6".c2 ASC


StanislavK
Devart Team
Posts: 1710
Joined: Thu 03 Dec 2009 10:48

Post by StanislavK » Fri 17 Sep 2010 13:14

The problem you are encountering is probably an integration one, whereas integration with VS LightSwitch is not supported yet.

We will investigate it and inform you about the results, but please notice that dotConnect for Oracle is not supposed to be used with the LightSwitch VS edition, nor do we guarantee they are compatible.

Mottor
Posts: 5
Joined: Fri 12 Mar 2010 12:47

Post by Mottor » Tue 21 Sep 2010 08:15

And for third time:
Is this select statement composed from your provider?

AndreyR
Devart Team
Posts: 2919
Joined: Mon 07 Jul 2008 13:16

Post by AndreyR » Thu 23 Sep 2010 12:03

We have reproduced the slow metadata quering situation.
I will let you know as soon as our investigation is complete.

Mottor
Posts: 5
Joined: Fri 12 Mar 2010 12:47

Post by Mottor » Thu 23 Sep 2010 21:40

Thanks,
may be there will be changes from Microsoft side too.
To improve the overall experience we will be looking at ways to avoid generating the full model so the select itself might become irrelevant.
Regards

andreyp
Posts: 3
Joined: Sun 14 Nov 2010 11:27

Post by andreyp » Sun 14 Nov 2010 11:31

Hi

Any news on this ?

andreyp
Posts: 3
Joined: Sun 14 Nov 2010 11:27

Post by andreyp » Sun 14 Nov 2010 11:32

Hi

Any news on this ?

AndreyR
Devart Team
Posts: 2919
Joined: Mon 07 Jul 2008 13:16

Post by AndreyR » Mon 15 Nov 2010 15:50

Our investigation is still in progress.
Have you tried Entity Developer? We have made a number of performance improvements in the latest Beta build.

andreyp
Posts: 3
Joined: Sun 14 Nov 2010 11:27

ORA-00936: missing expression - LightSwitch

Post by andreyp » Tue 30 Nov 2010 10:23

The perfomance issue is not so problematic , we mainly have a problem with the the ORA-00936: missing expression when trying to add the entities

AndreyR
Devart Team
Posts: 2919
Joined: Mon 07 Jul 2008 13:16

Post by AndreyR » Tue 30 Nov 2010 14:55

Our investigation is in progress.
I will let you know about the results.

tzi
Posts: 5
Joined: Tue 15 Jun 2010 19:30

Post by tzi » Tue 18 Jan 2011 10:07

Hi,

any updates on this topic? I encountered the same issue with the latest trial and I am eager to try Lightswitch + Oracle as an alternative RAD tool to Forms...

Cheers, Tom

AndreyR
Devart Team
Posts: 2919
Joined: Mon 07 Jul 2008 13:16

Post by AndreyR » Mon 24 Jan 2011 10:15

We have improved the LightSwitch performance.
This improvement will be available in the nearest build.

AndreyR
Devart Team
Posts: 2919
Joined: Mon 07 Jul 2008 13:16

Post by AndreyR » Fri 04 Feb 2011 09:47

The new build of dotConnect for Oracle 6.10.96 with improved LightSwitch performance is available.
It can be downloaded from here (trial version) or from Registered Users' Area (for users with valid subscription only).
For more information, please refer to this announcement.

Post Reply