This function returns a transformed object table with the original columns plus
one or more additional columns, depending on the transform_types values
specified.
This function only supports
object tables
as inputs. Subqueries or any other types of tables aren't supported.
object_table_name is the name of the object table to be transformed, in
the format dataset_name.object_table_name.
transform_types_array is an array of STRING literals. Currently, the only
supported transform_types_array value is SIGNED_URL. Specifying SIGNED_URL
creates read-only signed URLs for the objects in the identified object table,
which are returned in a signed_url column. Generated signed URLs are
valid for 6 hours.
Return Type
TABLE
Example
Run the following query to return URIs and signed URLs for the objects in the
mydataset.myobjecttable object table.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[[["\u003cp\u003eGoogleSQL for BigQuery supports built-in table functions that produce columns of a table and can only be used in the \u003ccode\u003eFROM\u003c/code\u003e clause.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eEXTERNAL_OBJECT_TRANSFORM\u003c/code\u003e function produces a transformed object table with additional columns, supporting only object tables as inputs.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eEXTERNAL_OBJECT_TRANSFORM\u003c/code\u003e can generate read-only signed URLs for objects within the table, accessible in a \u003ccode\u003esigned_url\u003c/code\u003e column, which are valid for six hours.\u003c/p\u003e\n"],["\u003cp\u003eThe table functions \u003ccode\u003eAPPENDS\u003c/code\u003e, \u003ccode\u003eCHANGES\u003c/code\u003e, \u003ccode\u003eGAP_FILL\u003c/code\u003e and \u003ccode\u003eRANGE_SESSIONIZE\u003c/code\u003e are available for use, and are categorized respectively as time series and range functions.\u003c/p\u003e\n"]]],[],null,["# Table functions (built in)\n\nGoogleSQL for BigQuery supports built-in table functions.\n\nThis topic includes functions that produce columns of a table.\nYou can only use these functions in the `FROM` clause.\n\nFunction list\n-------------\n\n`EXTERNAL_OBJECT_TRANSFORM`\n---------------------------\n\n EXTERNAL_OBJECT_TRANSFORM(TABLE object_table_name, transform_types_array)\n\n**Description**\n\nThis function returns a transformed object table with the original columns plus\none or more additional columns, depending on the `transform_types` values\nspecified.\n\nThis function only supports\n[object tables](https://cloud.google.com/bigquery/docs/object-table-introduction)\nas inputs. Subqueries or any other types of tables aren't supported.\n\n`object_table_name` is the name of the object table to be transformed, in\nthe format `dataset_name.object_table_name`.\n\n`transform_types_array` is an array of `STRING` literals. Currently, the only\nsupported `transform_types_array` value is `SIGNED_URL`. Specifying `SIGNED_URL`\ncreates read-only signed URLs for the objects in the identified object table,\nwhich are returned in a `signed_url` column. Generated signed URLs are\nvalid for 6 hours.\n\n**Return Type**\n\nTABLE\n\n**Example**\n\nRun the following query to return URIs and signed URLs for the objects in the\n`mydataset.myobjecttable` object table. \n\n SELECT uri, signed_url\n FROM EXTERNAL_OBJECT_TRANSFORM(TABLE mydataset.myobjecttable, ['SIGNED_URL']);\n\n --The preceding statement returns results similar to the following:\n /*-----------------------------------------------------------------------------------------------------------------------------*\n | uri | signed_url |\n +-----------------------------------------------------------------------------------------------------------------------------+\n | gs://myobjecttable/1234_Main_St.jpeg | https://storage.googleapis.com/mybucket/1234_Main_St.jpeg?X-Goog-Algorithm=1234abcd... |\n +-----------------------------------------------------------------------------------------------------------------------------+\n | gs://myobjecttable/345_River_Rd.jpeg | https://storage.googleapis.com/mybucket/345_River_Rd.jpeg?X-Goog-Algorithm=2345bcde... |\n *-----------------------------------------------------------------------------------------------------------------------------*/"]]